ZeroMQ中的主题

问题描述 投票:1回答:1

如何更好地使用ZeroMQ分离主题 - 只需指定不同的端口或使用这里的前缀:ZeroMQ and multiple subscribe filters in Python

指定端口看起来更简单。

我并不是指连接多个主题。我的意思是应用程序的不同部分将连接到不同的端口。

zeromq
1个回答
0
投票

不,使用不同的端口号将无法按您的方式工作。

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传递任何消息。

我不会称之为更简单。


APPs typically build a complex signalling/messaging plane

确实是尽可能持久的基础设施,其中许多socket-Access-Points根据需要将.bind() / .connect()用于许多单独的接入点地址,使用{ inproc:// | ipc:// | tcp:// | pgm:// | epgm:// | vmci:// }可用的许多传输类的混合。

这是基于ZeroMQ的设计的众多优势之一,可以和od享受。

© www.soinside.com 2019 - 2024. All rights reserved.