【发布时间】:2017-07-26 04:38:26
【问题描述】:
我有一个消息代理,各种客户端将在一天中的短时间内连接到该代理。
经纪人维护一个主题,它可以在该主题上发布数千种事物的价格,但在任何给定时间,当前连接的一组客户只会对这些事物的一小部分感兴趣。
在紧密耦合的系统中,客户端会显式订阅特定事物,服务器会跟踪低级别客户端连接/断开连接事件(自动取消订阅断开连接的客户端),并且仅发布客户端订阅的事物的价格。
在 ActiveMQ 等更松散耦合的消息传递系统世界中,处理此类事情的最佳方法是什么?
在我的情况下,经纪人必须尽量减少发布价格的商品数量,因为它从第三方系统获取价格,这对在任何给定时间可以流式传输价格的商品数量施加了严格限制.
我的第一个倾向是不尝试跟踪低级别事件,以告知当前连接的经纪人,也不要求客户明确表示他们不再对特定商品的价格感兴趣。
相反,客户会定期公布他们对特定商品价格的兴趣。经纪人会公布有积极兴趣的任何事物的价格,并最终停止公布近期没有客户宣布任何兴趣的事物的价格。
因此,与更紧密耦合的系统不同,客户必须每隔一段时间重新宣布他们对给定的一组事物的兴趣,而他们想要价格,但从不主动宣布兴趣结束。
对于此类问题是否有更好或更标准/公认的方法?
【问题讨论】:
标签: jms activemq messaging publish-subscribe messagebroker