1

我想知道是否可以使用 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 aprox,100 次/秒

4

1 回答 1

2

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

于 2013-04-12T22:17:03.493 回答