我使用PUSH套接字向通过PULL接收的工作人员发送消息,因此消息在工作人员中均匀分布。不过,我想用一些工作人员来处理特定的消息。在PUSH/PULL方法中,每个工人都没有特别的待遇,他们都是平等的。我虽然使用PUB/SUB,但由于过滤器,但没有办法自动分发给工人。如果一组工人要处理消息A,他们都会收到。这不好。是否可以用PUB/SUB来拉一个ZeroMQ PUSH套接字但使用过滤器?
完美的方法是对于一组工人能够只对他们提供PULL消息,而对B设置B PULL消息。例如,我可以为A组和另一个组设置一个端口,集合B,但是对于单个套接字来说,这种解决方案会非常优雅,我也没有看到开发人员无法完成的原因。
有没有办法用现有的ZeroMQ版本来做?
其基本思想是:只需一个PULL,它可以发送封装的消息(就像在PUB中一样),工作人员可以用这个信封拉PULL消息。看到工作人员可以拉出每条信息,看看它是否适合他们,但这需要额外的处理和重播广播收到的信息,以免丢弃。