ZeroMQ发布中的多个主题

2024-06-16 17:42:19 发布

您现在位置:Python中文网/ 问答频道 /正文

Listab是键和值。变量b中的值被指定为topicnumbers,数据每10秒发送一次到一个主题。这是一种稳定的信息分发方式吗?在不久的将来,当关键点和主题被放大到100+时,你会看到什么困难吗?在

import zmq
import random
import time
from  multiprocessing import Process

a = ['one', 'two', 'three', 'four', 'five']
b = [10, 20, 30, 40, 50]
d = dict(zip(a, b))

def pub001():
    port = "5100"    
    context = zmq.Context()
    socket = context.socket(zmq.PUB)
    socket.bind("tcp://*:%s" % port)

    while True:
        for i, x in d.items():
            topic = x
            number = random.randrange(1, 215)
            print(topic, number)
            socket.send_string("%d %d" % (topic, number))
            print("Data published", topic)
            time.sleep(10)

if __name__ == "__main__":
    a =Process(target=pub001, args=())
    a.start()

Tags: importnumber主题topictimeportcontextrandom
1条回答
网友
1楼 · 发布于 2024-06-16 17:42:19

按比例缩放?在

不需要。如果您阅读有关<_Topic-filter_>-处理的详细信息,则存在~4个数量级的空间(10.000 x更大的树仍在工作),因此不必期望几百个范围内的静态计数会出现问题(如果您正确地扩展了节点的存储资源,则根据实际执行<_Topic-filter_>处理的一侧)。在


性能方面?在

当然,如果机器互相交谈,设计一个更好的信息表示,而不是把它包装成一个非常冗余的人类可读的字符串,但是效率极低(在{local+transport+remote}-{processing+storage})的数据表示中都非常昂贵。在

对于最大延迟封套,一种更智能、位图(可能还包括时域合并)的有效负载的方式更有意义。在

相关问题 更多 >