[英]ZeroMQ multiple topics in publisher
列表a
和b
是键和值。 变量b
中的值被分配为主题编号,并且每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()
否。如果您阅读有关<_Topic-filter_>
-processing的详细信息,则存在<_Topic-filter_>
个数量级的空间(10.000 x更大的树<_Topic-filter_>
工作),因此不必担心数百个范围内的静态计数会带来问题(如果您正确地缩放了节点的存储资源,请按照实际在哪一侧进行<_Topic-filter_>
处理)。
当然,如果机器彼此交谈,则设计出更好的信息表示形式,而不是将其包装到人类可读的极其冗余的字符串中,但效率极低(并且在{本地+传输+远程}-{处理+存储上都非常昂贵}),数据表示。
对于最大的延迟包络,一种更智能的位图有效负载(可能还有TimeDOMAIN合并)可以让您感觉更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.