如何更好地使用ZeroMQ分离主题 - 只需指定不同的端口或使用这里的前缀:ZeroMQ and multiple subscribe filters in Python
指定端口看起来更简单。
我并不是指连接多个主题。我的意思是应用程序的不同部分将连接到不同的端口。
aSubTypeSOCKET.setsockopt( zmq.SUBSCRIBE, aLeftMatchTopicFILTERasSTRING )
aSubTypeSOCKET.setsockopt( zmq.SUBSCRIBE, anotherTopicFILTERasSTRING )
...
aSubTypeSOCKET.setsockopt( zmq.UNSUBSCRIBE, aLeftMatchTopicFILTERasSTRING )
...
aSubTypeSOCKET.setsockopt( zmq.SUBSCRIBE, yetAnotherTopicFILTERasSTRING )
是如何设置主题过滤器匹配条件以有效使用的标准机制。
connect()
-s是可能的,但是aSubTypeSOCKET.connect( "tcp://123.123.123.123:12345" )
aSubTypeSOCKET.connect( "tcp://123.123.123.123:23456" )
aSubTypeSOCKET.connect( "tcp://123.123.123.123:34567" )
将使aSubTypeSOCKET
确实.connect()
-ed到几个端口号,但发送方还决定,如果订阅“机制”将提供您可能预期使用的内容“专业化”而不是共同的主题过滤器订阅使用.setsockopt()
。
接下来,如果多个.connect()
-ed PUB
-s发送消息,那么SUB
-side通过“公平排队”方式通过传入的“路由”策略获取这些消息,因此SUB
-side将必须转向并检查循环轮完全转向,只是为了看,如果有任何存在/不存在和任何非空订阅主题过滤器设置将对称地适用于所有PUB
- 侧,类似第一个空字符串主题过滤器将“ unblock“/”short-cut“所有发送者都可以从所有PUB
-access-nodes传递任何消息。
我不会称之为更简单。
确实是尽可能持久的基础设施,其中许多socket-Access-Points根据需要将.bind() / .connect()
用于许多单独的接入点地址,使用{ inproc:// | ipc:// | tcp:// | pgm:// | epgm:// | vmci:// }
可用的许多传输类的混合。
这是基于ZeroMQ的设计的众多优势之一,可以和od享受。