【发布时间】:2017-02-10 05:28:06
【问题描述】:
我正在使用 PUSH 套接字向通过 PULL 接收的工作人员发送消息,因此消息在工作人员之间均匀分布。但是,我想使用一些工作人员来处理特定的消息。在 PUSH/PULL 方法中,每个工人都没有特殊待遇,他们都是平等的。由于过滤器的原因,我当时虽然使用 PUB/SUB,但无法自动分发给工作人员。如果一组工作人员打算处理消息 A,他们都会收到它。这不好。
完美的方法是让一组 A 工作人员能够 PULL 只对他们有意义的消息,而一组 B PULL 消息对 B 意味着。例如,我可以为集 A 设置一个端口,另一个为设置 B,但是为单个套接字提供此解决方案会非常优雅,而且我也认为开发人员没有理由不能这样做。
现有版本的 ZeroMQ 有没有办法做到这一点?
基本思想是:只有一个 PULL,它会发送封装的消息(就像在 PUB 中一样),工作人员可以使用这个信封拉取消息。看到工作人员可以拉出每条消息,看看它是否是为他们准备的,但这需要对收到的消息进行额外的处理和重新广播,以便它不会被丢弃。
【问题讨论】: