这是我的用例:我正在开发一个交易应用程序,我想向活跃的消费者发送增量股票更新(bidQty等),而不是整个报价和新消费者的快照更新(开始)。 / p>
现在,是否有可能覆盖任何ActiveMQ的类(Topic的实现者)来实现这种行为?任何关于此的线索都会有所帮助。
如果在任何其他openSource提供商中都可以这样做,请告诉我。
答案 0 :(得分:0)
这不是您可以简单地更改主题的实现的情况。实际上,您应该避免更改核心ActiveMQ功能的实现来解决特定的业务需求。修复错误和添加核心消息传递功能是另一回事。
使用常规ActiveMQ功能有多种方法可以解决您的用例。
单独的同步和更新频道
我可能会将" sync / snapshot"来自"增量更新"渠道。
一种方法是实现"快照同步"作为JMS request/reply,消费者要求提供者进行同步,然后继续依赖通过该主题推送的增量更新。
咨询消息和选择器
您还可以使用AdvisoryMessages和JMS Selectors混合使用单个主题来实现所有内容。
一个想法(你可以通过多种方式做到这一点):
介绍两个消息属性:MsgType和Receiver
MsgType='inc' OR (MsgType='snapshot' AND Receiver=<me>)
通过这种方式,您可以触发与特定客户端的快照同步以及所有客户端的增量更新。
如果你开始考虑已经拥有的动态,你可能会想到另外十种解决方案。
追溯消费者
您可能会使用Retroactive Consumer - example实际上会显示与您类似的情况。