【问题标题】:ZeroMQ pipeline patternZeroMQ 管道模式
【发布时间】:2012-01-02 23:13:10
【问题描述】:

我正在实现一个消息传递系统,其中称为代理的外部程序能够通过 ZeroMq 生产者进行通信。因此,每次发生感兴趣的事件时,代理都会向 ZeroMq 发送一条消息。

我有兴趣使用管道模式来实现它。

我找到了一些示例(Ventilator-Worker-Results Manager),但是 Ventilator 组件创建了一个端点来接受来自工作人员的连接,然后批量发送所有消息。

我的情况完全不同。每次需要发送事件时,“代理”都会连接 - 它不等待来自工作人员的连接,所以我想知道这是否可能?此外,重要的事实是消息必须按发送顺序进行处理。

【问题讨论】:

    标签: python zeromq


    【解决方案1】:

    REQ-REP 是您想要往返的时候。听起来你想要一个 PUB-SUB。在已知端口上设置一个带有绑定的 SUB,然后让客户端连接到该端口并发出一个 PUB。

    【讨论】:

      【解决方案2】:

      您应该混合这些模式来实现您的解决方案。我认为它应该是一个specialized broker,它为真正的 REQ 代理实例化 REP 代理收集器。那些代理收集器应该在与系统通信之前处理好订单。

      【讨论】:

      • 这可能是一个不错的解决方案,但我不需要在这里进行双向通信。代理不需要知道消息是否已传递给代理 - 它只需要发送它。
      • 我不确定,但是AFAIK,ZeroMQ 中没有单向套接字的概念。如果您的 REQ 代理确实需要与代理保持连接,只需在每次发送事件时关闭套接字。
      猜你喜欢
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多