【问题标题】:Multiple ipc publishers and one subscriber using python-zmq使用 python-zmq 的多个 ipc 发布者和一个订阅者
【发布时间】:2013-04-13 09:43:45
【问题描述】:

我想知道是否可以使用 zmq ipc 为一个订阅者设置多个 ipc 发布者...

抽象地说,我只有一个这样的发布者,但我需要运行它的多个实例来获取多种数据类型,但每次都发布相同的格式。

    context = zmq.Context()
    publisher = context.socket(zmq.PUB)
    publisher.connect("ipc://VCserver")
    myjson = json.dumps(worker.data)
    publisher.send(myjson)

我的订阅者:

    context = zmq.Context()
    subscriber = context.socket(zmq.SUB)
    subscriber.bind("ipc://VCserver")
    subscriber.setsockopt(zmq.SUBSCRIBE, '')
    while True:
        response = subscriber.recv()
        if response:
            data = json.loads(response)
            check_and_store(data)

我的订阅者每次都从数据中检查相同的参数并将其存储在数据库中。

我不知道这是否可能,因为这种通信模式使用共享文件,也许我应该考虑每个实例的发布者-订阅者对...

已编辑:每个发布者大约会发送 2kb,100 次/秒

【问题讨论】:

    标签: python zeromq pyzmq


    【解决方案1】:

    您绝对可以拥有多个发布者,唯一的限制是您不能在一个 IPC 套接字上拥有多个 binders - 每个连续的绑定只会破坏以前的绑定(与 TCP 不同,您将获得 EADDRINUSE如果您尝试绑定到已使用的接口)。您的情况应该可以正常工作。

    【讨论】:

    • 多个活页夹与 EADDRINUSE 相比是微妙的!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多