我在tcp中使用了pub-sub模式。当我的一个订户死亡(例如杀死-9)并使用相同的IDENTITY重新启动时,它不会获得先前的消息。
有什么解决方案,当它重新启动时会收到消息? (我知道0mq不能处理)
sub0不会收到丢失的消息。
答案 0 :(得分:2)
这完全是您的申请的责任。请查看指南...特别是Chapter 5 on advanced pub/sub patterns,更具体地说Getting an out of band snapshot。
结果是您的发布服务器实际上有两个套接字,一个用于发布,另一个用于其他系统级通信。无论何时发布新消息,它都会将该消息添加到本地缓存中......它永远不会忘记它发送的消息。只要您的订阅客户端重新连接到服务器,它的第二个套接字就会向服务器发送一个请求,以获取它丢失的所有消息(或者,如链接示例的情况,数据的整个当前状态),这些消息将被发送回到第二个插座对。通过这种方式,当用户开始通过普通用户信道获得新消息时,用户可以获得所有消息的最新信息。