使用SUB
类型的ØMQ套接字时,可以使用
sub_socket.setsockopt_string(zmq.SUBSCRIBE, 'topic')
REP
套接字是否也可以这样做,允许工作人员只处理特定主题,将其他主题留给不同的工作人员?
我非常害怕这是不可能的,引用http://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/patterns/pubsub.html:
在当前版本的ØMQ中,过滤发生在订阅方,而不是发布方。
但是,我仍在问,是否有一些技巧可以实现,因为这样的功能会对我的基础设施产生巨大影响。
答案 0 :(得分:1)
不。我可以假设您有一个REQ
或DEALER
服务器套接字,可以将工作发送给REP
工作者,然后将完成的工作回复给服务器吗?而且您正在寻找一种方法让您的服务器与特定客户进行通信,而不是仅仅以循环方式传递任务?
不能这样做。 See here,这些套接字始终是循环的。如果要与特定客户端进行通信,则必须具有仅与该客户端通信的套接字,或者必须从客户端启动通信(切换套接字配对,以便工作人员请求其准备好的任何工作,以及服务器用它响应,然后工作者用完成的工作创建一个新请求。做其他事情要复杂得多。