【发布时间】:2013-02-25 21:06:40
【问题描述】:
我有几个工人在等着做一些工作。我看到在 PULL/PUSH 模式中,我需要为工作人员提供客户端的 IP 地址(使用 tcp 协议),以便它可以监听来自那里的请求。但是,在我的情况下,我也希望有很多客户端,来自不同 IP 的请求......所以基本上我没有一个静态 IP 可以将工作人员绑定到 PULL 。我使用了错误的模式还是有办法正确地做到这一点?
【问题讨论】:
我有几个工人在等着做一些工作。我看到在 PULL/PUSH 模式中,我需要为工作人员提供客户端的 IP 地址(使用 tcp 协议),以便它可以监听来自那里的请求。但是,在我的情况下,我也希望有很多客户端,来自不同 IP 的请求......所以基本上我没有一个静态 IP 可以将工作人员绑定到 PULL 。我使用了错误的模式还是有办法正确地做到这一点?
【问题讨论】:
您应该考虑使用路由器经销商模式。您的路由器在两端绑定,并且具有静态 IP。它从连接到它的多个客户端中提取并推送到另一端的工作人员。您可以使用 ROUTER/DEALER 套接字类型来实现这一点,或者只是使用使用 PUSH/PULL 套接字的额外网桥将客户端连接到工作人员。
【讨论】:
STREAMER。 api.zeromq.org/2-2:zmq-device#toc5
STREAMER 确实解决了这个问题,我在这里找到了一个很好的工作示例:learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/devices/…
zmq.STREAMER和C API的ZMQ_STREAMsocket一样吗?