Jms 如何使用ActiveMQ主题发送增量更新和快照同步

Jms 如何使用ActiveMQ主题发送增量更新和快照同步,jms,activemq,trading,jms-topic,Jms,Activemq,Trading,Jms Topic,以下是我的使用案例:我正在开发一个交易应用程序,我希望向活跃消费者发送增量股票更新(bidQty等),而不是向新消费者发送整个报价和快照更新(首先) 现在,是否可以覆盖任何ActiveMQ的类(主题的实现者)来实现此行为?这方面的任何线索都会有帮助 如果在任何其他开源提供商中也可以这样做,请告诉我。在这种情况下,您不能简单地更改topic的实现。实际上,您应该避免更改ActiveMQ核心功能的实现以解决特定的业务需求。修复bug和添加核心消息功能是另一回事 使用常规ActiveMQ功能解决您的用

以下是我的使用案例:我正在开发一个交易应用程序,我希望向活跃消费者发送增量股票更新(bidQty等),而不是向新消费者发送整个报价和快照更新(首先)

现在,是否可以覆盖任何ActiveMQ的类(主题的实现者)来实现此行为?这方面的任何线索都会有帮助


如果在任何其他开源提供商中也可以这样做,请告诉我。

在这种情况下,您不能简单地更改topic的实现。实际上,您应该避免更改ActiveMQ核心功能的实现以解决特定的业务需求。修复bug和添加核心消息功能是另一回事

使用常规ActiveMQ功能解决您的用例有多种方法

单独同步和更新频道

我可能会将“同步/快照”通道与“增量更新”通道分开

一种方法是实现“快照同步”,消费者向提供商请求同步,然后继续依赖通过主题推送的增量更新

咨询信息和选择器

您还可以使用和的混合使用单个主题来实现这一切

一个想法(您可以通过多种方式实现):

介绍两个消息属性:MsgType和Receiver

  • 用MsgType=inc标记每个增量更新
  • 使用使用者的某个客户端id标记每个快照,接收器=
  • 让制作人收听来自ActiveMQ的建议消息,并在有新客户订阅股票主题时触发标记为Receiver=和MsgType=snapshot的快照/同步消息
  • 客户端使用类似的选择器进行订阅
MsgType='inc'或(MsgType='snapshot'和Receiver=)

通过这种方式,您可以触发与特定客户端的快照同步,以及所有客户端的增量更新

如果你开始思考你已经拥有的动力,你可能会想到另外十个左右的解决方案

追溯消费者

你可能会用到一个-实际上显示了一个与你类似的场景