【问题标题】:Redis pub/sub for single receivers用于单个接收器的 Redis 发布/订阅
【发布时间】:2020-01-19 19:07:28
【问题描述】:
我是RabbitMQ 用户,正在探索Redis,并且有两个关于发布/订阅机制的问题
我可以将消息发布到每个客户端(消费者)删除其他客户端条目的系统吗?我想发布 100 个任务,但每个任务只能由 1 个订阅者处理。
AFAIK,默认情况下,所有消息总是广播/发布给所有客户端。如果一个客户端需要 1 秒来处理消息,而另一个客户端需要 1 分钟会怎样。这里的限制是什么?是否会在某个时候丢弃一些消息?
非常感谢!
【问题讨论】:
标签:
python
redis
rabbitmq
【解决方案1】:
1) 这不是发布/订阅的工作方式。 Publish 不关心或知道被接收,它只是发布一条消息。每个订阅的订阅者都会收到它,你不能阻止它
2) 由您来处理客户端逻辑。
听上去,redis pub/sub 可能不是您正在寻找的系统/模式。您应该研究zeromq,尤其是push 和pull 套接字,它们不是发布消息,而是一次将消息推送到特定的套接字。如果您通读 starter documentation 会解释许多模式,并且某些模式会适用于您的具体情况。