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