我是一个正在探索 Redis
的 RabbitMQ
用户,并且有两个关于 pub/sub 机制的问题
我可以将消息发布到每个客户端(消费者)删除其他客户端条目的系统吗?我想发布 100 个任务,但每个任务只能由 1 个订阅者处理。
据我所知,默认情况下,所有消息始终广播/发布给所有客户端。如果一个客户端需要 1 秒来处理消息,而另一个客户端需要 1 分钟,该怎么办?这里的限制是什么?某些消息会在某个时刻被丢弃吗?
非常感谢!
最佳答案
1) 这不是发布/订阅的工作原理。 Publish 不关心也不知道是否被接收,它只是发布一条消息。每个订阅的订阅者都会收到它,并且您无法阻止此操作
2) 由您来处理客户端逻辑。
从听起来来看,redis pub/sub 可能不是您正在寻找的系统/模式。您应该特别研究 zeromq
,push
和 pull
套接字,它们不是发布消息,而是一次将消息推送到特定套接字。如果您通读starter documentation解释了许多模式,并且某些模式适用于您的具体情况。
关于python - 用于单个接收者的 Redis 发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999302/