【问题标题】:CoffeeScript ZMQ Pub not sending MessagesCoffeeScript ZMQ Pub 不发送消息
【发布时间】:2014-06-17 15:44:30
【问题描述】:

相同的 pub-sub 代码在本地机器 (Linux zephyr 3.13.0-27-generic #50-Ubuntu SMP Thu May 15 18:08:16 UTC 2014 i686 i686 i686 GNU/Linux). 上工作

但是,在 EC2 机器 (Linux <host> 3.2.0-60-virtual #91-Ubuntu SMP Wed Feb 19 04:13:28 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux) 上它失败了。 安全组设置为允许所有 19019 端口以及从 0 开始的所有 TCP 端口。 我尝试在 NodeJS ZMQ 模块中添加打印,并且当我在刷新函数中添加它时能够获取我发送的数据。 还有什么问题?

我尝试在端口 19019 上使用 tcpflow 监听 pub 流量,但没有成功。我怎样才能听到这个流量?

sudo tcpflow -i eth0 port 19019sudo tcpflow -i lo port 19019

两者都不起作用。有什么工具可以用来调试吗?

酒吧咖啡

zmq = require 'zmq'
dpush_socket = zmq.socket 'pub'
dpush_socket.bind 'tcp://127.0.0.1:19019', (err) ->
  if not err?
    console.log "Bind successful"

dpush_socket.send 'pid' + ' req ' + req.query.pid

Sub.coffee

zmq = require "zmq"

endPoint = "tcp://0.0.0.0:19019"

sub = zmq.socket "sub"
sub.identity = 'worker' + process.pid;
sub.connect endPoint
console.log "worker connected!"

sub.subscribe('')

sub.on "message", (msg) ->
  console.log(sub.identity + 'got ' + msg.toString())

【问题讨论】:

    标签: node.js amazon-ec2 coffeescript zeromq publish-subscribe


    【解决方案1】:

    Transport Class 宁愿在同一个 IP:PORT# 上相遇

    .coffee

    zmq = require "zmq"
    #                                    # rather set URL, where PUB .bind() listens
    endPoint = "tcp://127.0.0.1:19019"   # endPoint = "tcp://0.0.0.0:19019"
    

    【讨论】:

      【解决方案2】:

      部分答案可能是user3666197指出的:你需要在同一个IP上绑定和连接。我不确定您对0.0.0.0 地址的用途,而且它甚至在您的本地计算机上也不应该工作,除非您找到支持此行为的网络堆栈的某个未记录的角落。

      另一件事是你要么想在你的回调中包含你的send 调用,要么可能想使用bindSync 来确保在你尝试发送任何东西之前绑定套接字。可能发生的情况是套接字正在丢弃您发送的消息,因为在您进行调用时套接字尚未完成绑定。这在不同的机器之间可能会有所不同。

      【讨论】:

      • 它更早实际上是 127.0.0.1 并且还尝试了公共 DNS。当这些在 ec2 服务器上失败时,我才尝试 0.0.0.0 。我会试试 bindSync
      • 即使 bindSync 也没有多大帮助。
      【解决方案3】:

      问题是我使用了一个 nodejs 集群模块,并且在每项工作中都创建了一个 zmq pub 套接字,它绑定在同一端口上,这会弄乱问题。在我的本地机器上,它产生了一个工人。

      【讨论】:

      • 这是有道理的。一旦您能够这样做,请不要忘记将您的答案标记为已接受。
      • 感谢 Jason 的快速支持。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多