zeromq相关内容

正确的 ZeroMQ 拓扑

我需要编写一个订单管理器,将客户(股票、外汇等)订单发送到适当的交易所.客户想要发送订单,但对 FIX 或其他专有协议一无所知,只知道发送订单的内部(标准化)格式.我有应用程序(服务器),每个应用程序都通过 FIX/Binary/etc 连接连接到每个 FIX/etc 提供程序.我希望在客户端和服务器之间有一个代理程序,该程序采用规范化顺序并将其转换为给定 FIX/etc 提供程序的正确格式,并从 ..
发布时间:2021-10-05 19:02:59 其他开发

使用 ZMQ 从多个客户端拉取请求

我有几个工人在等着做一些工作.我看到在 PULL/PUSH 模式中,我需要为工作人员提供客户端的 ip 地址(使用 tcp 协议),以便它可以侦听来自那里的请求.但是,在我的情况下,我也希望有很多客户端,来自不同 IP 的请求......所以基本上我真的没有一个静态 IP 来绑定工作人员到 PULL.我是使用了错误的模式还是有正确的方法? 解决方案 您应该考虑使用路由器经销商模式.您的路由 ..
发布时间:2021-10-05 19:02:56 其他开发

zeromq 性能测试.准确的延迟是多少?

我正在使用 zmq 跨进程传输消息,我想做一些性能测试以获取延迟和吞吐量. 官网给出指南告诉如何运行性能测试 例如,我试过: local_lat tcp://*:15213 200 100000remote_lat tcp://127.0.0.1:15213 200 100000 并得到结果: 消息大小:200 [B]往返次数:100000平均延迟:13.845 [us] 但是 ..
发布时间:2021-10-05 19:02:53 其他开发

ZeroMQ 推送套接字导致客户端在没有进程正在侦听时终止

我刚刚开始使用 ZeroMQ,我遇到了一个无法正常终止的客户端的问题.特别是我有一个客户端,它可以在没有接收器服务器正在侦听时“推送"数据,并且在 python 代码完成后似乎使进程挂起.我假设有一些后台线程需要清理 - 请告诉我如何或指向文档. 这是相关的代码段.如果我在没有侦听器的情况下运行进程并取消注释“self.push"行,进程会挂起 def setup(self):打印 sel ..
发布时间:2021-10-05 19:02:51 Python

如何在 ZMQ 套接字中启动/退出时清除缓冲区?(防止服务器与死客户端连接)

我在 python 中使用 REQ/REP 类型的套接字进行 ZMQ 通信.有多个客户端尝试连接到一台服务器.已在客户端脚本中添加超时以防止无限期等待. 问题是,当服务器没有运行,并且客户端尝试建立连接时,它的消息被添加到队列缓冲区中,理想情况下此时甚至不应该存在.当脚本开始运行并且新客户端连接时,服务器首先接收前一个客户端的数据.这不应该发生. 当服务器启动时,它假设有一个客户端连接 ..
发布时间:2021-10-05 19:02:48 Python

ZeroMQ XPUB/XSUB 严重缺陷?

似乎 XPUB/XSUB 套接字类型有一个难以解决的严重缺陷: 这是我对该中心节点的实现: #include int main(){zmq::context_t 上下文(1);//传入的出版物来到这里zmq::socket_t sub(context, ZMQ_XSUB);sub.bind("ipc://subscriber.ipc");//发出的出版物从这里出去.zmq::socket_ ..
发布时间:2021-10-05 19:02:45 C/C++开发

php-zmq 未显示在 phpinfo() 页面上

我在 Windows 上使用 Wamp Server 并安装了 zmq 库.当我在控制台上写 php --info 时,我看到 zmq 显示为已安装. zmq ZMQ 扩展 =>启用 ZMQ 扩展版本 =>1.1.2 libzmq 版本 =>3.2.2 但是当我使用 phpinfo() 函数创建一个 php 页面来显示 php 配置时,它没有显示任何关于 zmq 的内 ..
发布时间:2021-10-05 19:02:42 PHP

ZeroMQ:PUSH 上的 HWM 不起作用

我正在尝试编写一个服务器/客户端脚本,其中有一个服务器来释放任务,以及多个执行它的工作人员.问题是我的呼吸机有很多任务,它会在心跳中填满内存.我试图在绑定之前设置 HWM,但没有成功.只要工作人员连接,它就会继续发送消息,完全无视设置的 HWM.我还有一个记录已完成任务的接收器. server.py 导入zmqdef通风():上下文 = zmq.Context()# 用于发送消息的套接字发 ..
发布时间:2021-10-05 19:02:39 Python

ZeroMQ 中的 N 到 N 异步模式?

虽然我阅读了指南,但我找不到执行以下操作的方法: 我们有 n 个出版商, 我们有 m 个订阅者. 每个订阅者订阅某种类型的消息(一个发布者可以发送一种以上的消息,多个发布者可以发出相同类型的消息). 如何在 0MQ 中创建 N 到 N(或 N 到 1 到 N)模式来做到这一点? 解决方案 0MQ 自动允许 N 到 M 个网络;只需将每个订阅者连接到每个发布者.这可能会成为管理负担, ..
发布时间:2021-10-05 19:02:37 其他开发

在 zeromq 中结合 pub/sub 和 req/rep

客户端如何使用 zeromq 订阅和收听回复?也就是说,在客户端我想运行一个循环,它只接收消息并有选择地发送请求,而在服务器端,我想大部分时间都发布,但有时也接收请求.看起来我必须有两个不同的套接字 - 每个通信模式一个.是否有可能避免这种情况,并在服务器端从 zeromq 回调线程上的套接字接收“请求通知",同时将消息推送到我自己线程中的套接字? 解决方案 我对 ZeroMQ 非常陌生, ..
发布时间:2021-10-05 19:02:34 其他开发

ZeroMQ 消息大小长度限制?

假设多台机器使用 python 的 zeroMQ 客户端进行交互. 这些消息自然地格式化为字符串. 消息(字符串)的长度有限制吗? 解决方案 发送的消息大小没有限制,但是小消息的处理方式与大消息不同(请参阅 这里). 小消息的最大大小在源代码中定义为 30 字节(参见 此处,查找 ZMQ_MAX_VSM_SIZE). ..
发布时间:2021-10-05 19:02:31 其他开发

ZeroMQ 在 NAT/防火墙后面的不同网络中发布-订阅模式的使用

发布-订阅方法是否适用于: 发布者和订阅者位于不同的网络(我检查过一次 - 有效) 订阅者位于 NAT\防火墙之后 在这两种情况下,数据包路由都可以正常工作. 据我所知,PUB\SUB 使用相同的 TCP 传输,所以如果 PUB\SUB 不起作用,那么标准的 windows winsock 也不起作用?是 PUB\SUB 代理(比如 http://zguide.zeromq.o ..
发布时间:2021-10-05 19:02:28 其他开发

NetMQ中如何识别传入连接的物理地址?

在 NetMQ 的路由器-经销商示例中,我们看到客户可以设置自己的身份.这对于记录目的很有用.但是,如果我只控制服务器(路由器)的代码而不控制客户端(经销商)的代码呢?如果某些客户端不想以对我的服务器有意义的方式设置身份怎么办?当客户没有在消息或身份中明确提供给我时,我如何在我的日志中包含物理地址? 如果你只知道基于 ZeroMQ 的其他实现的答案,我会很感兴趣听到它,但最终我想要一些可以在 ..
发布时间:2021-10-05 19:02:25 C#/.NET

如何将 send_json 与 pyzmq PUB SUB 一起使用

我需要将字典作为消息从发布者发送给订阅者.使用 REQ/REP 模式 send_json 和 recv_json 工作得很好,但我似乎找不到适用于 PUB/SUB 的咒语.希望不是 PUB/SUB 只能使用 send() 和 recv(). 这是我整理的实验清单: """0MQ PUB/SUB 模式的实验"""导入操作系统导入系统导入时间进口zmq从多处理导入过程来自随机进口样本,选择输入 ..
发布时间:2021-10-05 19:02:22 Python

PyZMQ PUSH 套接字不会在 send() 上阻塞

ZMQ 套接字文档中的 ZMQ_PUSH 部分 假设在没有下游节点的 PUSH 套接字上调用 send() 应该阻塞,直到至少有一个节点可用. 但是,运行以下代码似乎不会阻止 send().此外,在我运行匹配的 PULL 套接字并接收消息之前,该进程不会退出: 导入zmq导入时间zmq_context = zmq.Context()打印 '>创建 PUSH 套接字'发送者 = zmq_co ..
发布时间:2021-10-05 19:02:19 Python

ZMQError:无法分配请求的地址

我正在使用 zeromq 开发一个动态应用程序,其操作类似于 upnp 协议(自动配置和自动发现客厅设备).为此,我使用 zeromq 来分发消息,我的问题是当我在地址 "169.254.1.0 到 169.254.254.255" 上创建套接字和绑定时,我收到这样的错误消息:ZMQError:无法分配请求的地址. 我试图通过按本地地址 (127.0.0.1) 更改地址来找出原因,它的工作原 ..
发布时间:2021-10-05 19:02:16 其他开发

ZMQ 套接字连接超时

我正在为 ZMQ (cppzmq) 使用 C++ 绑定,我正在尝试使用 .setsockopt() 方法设置 TCP 套接字的连接超时,如下所示: int connectTimeout = 1000;socket.setsockopt(ZMQ_CONNECT_TIMEOUT, &connectTimeout, sizeof(connectTimeout));socket.connect(clie ..
发布时间:2021-10-05 19:02:13 C/C++开发

对于连接到单个服务器的多个客户端,我应该使用哪种双向 ZeroMQ 模式?

我有多个(1000 多个)客户端连接到单个服务器并发送一些日志数据. 服务器分析数据并在必要时做出响应. PUB/SUB 是一个方向(监控示例). REQ/REP 无法识别对等点并专门回复对等点(更多用于 ACK 等). 我需要注册这些客户,识别他们并在分析他们的日志后能够做出回应. 使用套接字,我有客户端套接字,在接受之后我可以使用该套接字进行响应,并且客户端可以在我连 ..
发布时间:2021-10-05 19:02:10 其他开发

Python 3.6 ZeroMQ (PyZMQ) asyncio pub sub Hello World

我刚刚开始使用 ZeroMQ,我正在尝试让 Hello World 与 Python 3.6 中的 PyZMQ 和 asyncio 一起工作.我正在尝试将模块的功能与发布/订阅代码分离,因此有以下类设置: 编辑 1:最小化示例 编辑 2:包含解决方案,请参阅下面的答案以了解操作方法. 导入异步导入 zmq.asyncio从 zmq.asyncio 导入上下文# 管理发布者和订阅者之间 ..
发布时间:2021-10-05 19:02:07 其他开发

ZMQ REP,知道谁发送请求

我目前正在使用 zmq 和 python.服务器正在使用 REP 套接字. 我有办法在接收消息时知道是谁发送的吗?如果收到 2 条消息,我只需要知道它们是否来自同一用户,因此例如 uid 就足够了. 解决方案 看起来你想在服务器端实现异步请求处理:你让服务器接受请求,异步处理它们,并将响应发送回客户端每当响应数据可用于每个请求时.当然,现在:在处理完请求后,您如何知道要将其发送回哪个 ..
发布时间:2021-10-05 19:02:04 其他开发