【问题标题】:ZeroMQ, async blocking socketsZeroMQ,异步阻塞套接字
【发布时间】:2019-05-29 06:49:58
【问题描述】:

我正在构建一个分布式系统,我希望双方异步发送和接收,并在高水位标记后阻塞。

PUSH/PULL 套接字效果很好,但我无法绑定 PUSH 套接字。这意味着如果客户端在防火墙后面,我不能有一个客户端-PUSH 到服务器-PULL 和一个服务器-PUSH 到客户端-PULL,因为服务器无法连接到客户端。

书中写了以下内容,但我找不到它的例子。 “REQ to DEALER:理论上你可以这样做,但如果你添加第二个 REQ,它会中断,因为 DEALER 无法向原始对等方发送回复。因此 REQ 套接字会混淆,和/或返回消息意味着给另一个客户。” http://zguide.zeromq.org/php:chapter3

我只需要一对一的连接,所以理论上这对我有用。

我的问题是,在不丢包的情况下,使用 ZeroMQ 获得异步发送和接收的最佳做法是什么?

【问题讨论】:

    标签: zeromq


    【解决方案1】:

    大多数 ZeroMQ 套接字都可以绑定(侦听特定端口,充当服务器)和连接(充当客户端)。它通常与数据流无关。请参阅the guide 了解更多信息。

    尝试在您的服务器上绑定 PUSH 套接字并从您的客户端 PULL 套接字连接。

    【讨论】:

    • 在 PULL 套接字上绑定没有问题。但是,AFAIK,我尝试绑定一个 PUSH,但失败了。
    • 另一种选择是仅使用带有DEALER and ROUTER 套接字的单个连接。
    • ZMQ_ROUTER 是 ZMQ_HWM 选项动作:Drop.
    猜你喜欢
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2011-09-16
    • 2013-03-31
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多