实现持久的发布/订阅?
|
假设我有一个发布者和多个听众。发布者发送消息时,所有侦听器都必须接收它。如果其中一位听众掉线了,他应该在再次回到另一位时收到消息。
我该如何实施?
我在考虑使用队列:
每个侦听器将其置于自己的队列中,并向订阅者发送包含其队列位置的订阅消息。发布者将位置保存到文件或数据库,然后开始将其消息发送到该队列。
因此,这将是时间表:
发布者已启动。还没有听众。
发布者发送消息1。
发布者发送消息2。
发布者发送消息3。
侦听器1启动并向发布者订阅。
发布者发送消息4。
侦听器1收到消息4。
侦听器2启动并向发布者订阅。
发布者发送消息5。
侦听器1收到消息5。
侦听器2收到消息5。
侦听器2崩溃。
发布者发送消息6。
侦听器1收到消息6。
发布者发送消息7。
侦听器1收到消息7。
侦听器2重新启动,无需再次订阅。
侦听器2收到消息6。
侦听器2收到消息7。
最重要的是,每个侦听器需要一个队列,并且需要一个队列或通道来发送和接收“开始监听”和“停止监听”的消息。
我是在朝着正确的方向思考,还是我完全错了?
没有找到相关结果
已邀请:
2 个回复
吠强祷豪硅
粱委教