当前位置: 首页 > 知识库问答 >
问题:

如何在有多个IP的机器上控制ZeroMQ包的源IP地址?

鱼意远
2023-03-14

Python标准库的< code >套接字。create_connection()方法有一个源地址选项,用于控制连接使用哪个源IP。

给定一台有多个地址的机器,我如何使用Python ZeroMQ套接字做同样的事情?

在这种情况下,我一直在使用Linux的iproute2 ip addr addr来创建地址和ZeroMQ pub/sub套接字原型。

共有2个答案

吴高峰
2023-03-14

当尝试.连接()到远程时,我在协议留档中找到了答案,将源ip放在连接字符串中的分号之前:

rc = zmq_connect(socket, "tcp://192.168.1.17:5555;192.168.1.1:5555")

在 Python 中,这看起来像:

socket = zmq.Context().socket(zmq.SUB)
socket.connect('tcp://192.168.1.17:5555;192.168.1.1:5555')
章誉
2023-03-14

为什么?

经典套接字是一种免费的资源。

ZeroMQ是一个相当复杂的思想和行为原则的层次结构(更好的分布式行为),它有助于设计智能分布式计算系统,而不触及低级(ZeroMQ很好地抽象)细节,控制所有分布式计算系统在恶劣条件下的实际事件流(并且必须相应地在低级别处理, 如果要实现 ZeroMQ “promise”保留的高级抽象,并让设计人员的思想专注于他/她的核心应用部分,而不是重新设计轮子(所有试验和错误)在 O/S 资源上拉绳子和摇动系统服务,只收集一些低垂的水果类型)。

出于这些原因,最好直接忘记ZeroMQ是“类似于-socket

1:
ZeroMQpromise轻松重用一些琐碎的可扩展正式通信模式原型,提供特定的分布式行为{PUB/SUB|PUSH/PULL|PAIR/PAIR|XPUB/XSUB|…|REQ/REP}

2:
除了仅使用无设备inproc://传输类的情况外,在所有其他情况下,ZeroMQ需要一个或多个可调谐“引擎”的实例-上下文(nIO线程=N)N

3:
有了这个,任何(未来的套接字)接入点都可以被实例化,从出生的那一刻起就带有行为原型:

aSubscribeCHANNEL = aLocalCONTEXT.socket( zmq.SUB )      # this is NOT a <SOCKET>
#                                 ^^^^^^__________________ even it was typed in

4:
在本地“引擎”内部准备好“接入点”实例后,可以使用一个或多个(是的,更多… WOW!这意味着更多传入的拉绳进入/哨声从单个接入点“行为节点”吹出)对以下任一方法的调用:
。绑定(

5:
当且仅当a 。bind()-RTO就绪接入点A被第一个实时< code >访问。connect()
-RTO就绪接入点B,具有任何匹配的行为配对,zero MQ-消息/信令原型变得活跃(出于历史原因,也可能将其命名为套接字,以便于解释)

(出于显而易见的原因,PUB/PUB永远不会合适,而PUB/SUB和许多其他行为原型对将会并且会做可爱的匹配,并形成相互兼容的行为,最终会活下去并保持不变)

只需在对
调用中使用完全限定的规范。绑定(“{tcp|pgm|epgm}://

就这么简单。

很酷,不是吗?

< sub >在性能调优、延迟削减和安全性调整方面,还有许多令人惊喜的事情。

 类似资料:
  • 问题内容: Python标准库的 方法有一个源地址选项,用于控制连接使用哪个源IP。 给定一台具有多个地址的机器,如何使用Python ZeroMQ套接字执行相同的操作? 在这种情况下,我一直在使用Linux的iproute2 创建地址和ZeroMQ 套接字原型。 问题答案: 当尝试到 远程服务器时,我在协议文档中找到了答案,将源IP放在连接字符串中的分号之前: 在Python中,这看起来像:

  • 我正在从事Spring MVC控制器项目,在该项目中,我正在从浏览器中进行GET URL调用- 下面是我在浏览器中进行GET调用的url- 下面是点击浏览器后调用的代码- 问题陈述:- 现在有什么方法,我可以从一些标头中提取IP地址吗?意思是我想知道从哪个IP地址,呼叫来了,意思是谁在上面调用URL,我需要知道他们的IP地址。这可能吗?

  • 我有这个IP摄像机Nexus CCTV 235FW。我再也连接不上它了。我能重置它吗?我想这是在我修改了管理员密码之后发生的。它是连接的以为WiFi,但我也试过用电缆,没有任何运气。 我也试着用搜索工具搜索相机,但还是没有运气。 另一件事,我甚至看不到摄像头在路由器的列表上连接的单位。 希望任何人能帮助我。

  • 本文向大家介绍Docker 获取Docker机器的IP地址,包括了Docker 获取Docker机器的IP地址的使用技巧和注意事项,需要的朋友参考一下 示例 要获取docker机器的IP地址,您可以使用以下命令:            

  • 问题内容: 创建新容器后,是否可以运行命令以从主机获取容器的IP地址? 基本上,一旦Docker创建了容器,我想滚动自己的代码部署和容器配置脚本。 问题答案: 该的选项就派上用场了。 现代Docker客户端语法为: 旧的Docker客户端语法为: 这些命令将返回Docker容器的IP地址。 如注释中所述:如果在Windows上,请在花括号周围使用双引号而不是单引号。

  • 我正在寻找一个命令行解决方案,它将返回给我本地主机的主要(第一个)IP地址,而不是127.0.0.1 该解决方案至少应适用于Linux(Debian和RedHat)和OS X 10.7+ 我知道在这两个平台上都可用,但它的输出在这两个平台之间并不是那么一致。