草庐IT

sockets - ZMQ 性能与 UDP 多播比较

与“简单的”UDP及其多播实现相比,ZMQ的性能(我指的是发送所有消息时的延迟、许多消息到许多接收者的最大扇出率)是什么?假设,我有一个静态“发送者”,它必须向很多很多“接收者”发送消息。带有简单TCP传输的PUB/SUB模式似乎很适合处理这样的任务——ZMQ无需我们的努力就可以做很多事情,一个ZMQ套接字足以处理甚至大量的连接。但是,我担心的是:ZMQ可以在后台创建许多TCP套接字,即使我们没有“看到”它。这可能会造成延迟。但是,如果我创建“通用”UDP套接字并将使用多播传输我的所有消息-将只有一个套接字(多播),所以我认为延迟问题将得到解决。老实说,我想继续使用ZMQ和TCP上的P

c - Zeromq:使用 zmq 的 PUB/SUB 程序,不交换消息

我在zmq中编写了一个简单的PUB/SUB程序,但它不起作用。在server.c中,我所做的只是将服务器绑定(bind)到特定的套接字,然后广播一条消息“嗨!同样,在client.c中,我正在接收发送的字符串并打印它,但它总是跳过循环。当我运行客户端它没有收到来自server.c的任何消息。可能是什么错误?//server.c#include#include#include#includeintmain(void){//Prepareourcontextandpublishervoid*context=zmq_ctx_new();void*publisher=zmq_socket(co

python - 更改 IPC ://to tcp://python zmq (Windows)

我试图让python应用程序在Windows上运行,但我收到ZMQError:Protocolnotsupported这是因为Windows不支持ipc。根据我的阅读,从ipc到tcp协议(protocol)的更改应该与更改bind()中使用的字符串一样简单。master_addr='ipc://{0}/sailfish-master-{1}_{2}'.format(tempfile.gettempdir(),os.getpid(),subdomain.id)ipc_files.append(master_addr.replace('ipc://',''))sock=ctx.socke

python - ZMQ : No subscription message on XPUB socket for multiple subscribers (Last Value Caching pattern)

我实现了ZMQ的最后值缓存(LVC)示例(http://zguide.zeromq.org/php:chapter5#Last-Value-Caching),但无法让第二个订阅者在后端注册。订阅者第一次加入时,满足event[0]==b'\x01'条件并发送缓存值,但第二个订阅者(相同主题)没有'甚至注册(ifbackendinevents:永远不会为真)。其他一切正常。数据从发布者传递到订阅者(全部)。这可能是什么原因?后端连接方式是否正确?这种模式只适用于第一个订阅者吗?更新当我为第二个订阅者订阅另一个主题时,我得到了正确的行为(即\x01订阅时)。这似乎真的适用于第一个订阅者on

Python + ZMQ : Operation cannot be accomplished in current state

我试图让一个python程序通过zeromq使用请求-回复模式与另一个python程序通信。客户端程序应向服务器程序发送请求,服务器程序进行回复。我有两台服务器,当一台服务器出现故障时,另一台服务器接管。当第一台服务器工作时,通信工作完美,但是,当第一台服务器发生故障并且当我向第二台服务器发出请求时,我看到错误:zmp.error.ZMQError:Operationcannotbeaccomplishedincurrentstate服务器1的代码:#RuntheserverwhileTrue:#Definethesocketusingthe"Context"sock=context.

go - 无法在 mac os X 上为 golang 运行 zmq,未知问题

我正在尝试使用gozmq然而,对于我使用ZMQ进行的go项目,我遇到了一些问题并且不确定问题出在哪里。当我使用zmq运行我的应用程序时:$gorunmain.go我回来了:#pkg-config--cflagslibzmqlibzmqlibzmqlibzmqexec:"pkg-config":executablefilenotfoundin$PATH我实际上并不知道它是什么意思,也不知道它为什么会出现。但是,我猜我没有安装zmq或者找不到它之类的……所以我用brew安装了它brewinstallzmq但是我得到:Warning:zeromq-4.0.4alreadyinstalled所

go - 无法在 mac os X 上为 golang 运行 zmq,未知问题

我正在尝试使用gozmq然而,对于我使用ZMQ进行的go项目,我遇到了一些问题并且不确定问题出在哪里。当我使用zmq运行我的应用程序时:$gorunmain.go我回来了:#pkg-config--cflagslibzmqlibzmqlibzmqlibzmqexec:"pkg-config":executablefilenotfoundin$PATH我实际上并不知道它是什么意思,也不知道它为什么会出现。但是,我猜我没有安装zmq或者找不到它之类的……所以我用brew安装了它brewinstallzmq但是我得到:Warning:zeromq-4.0.4alreadyinstalled所

Go ZMQ4 - 关闭在 Recv 上阻塞的套接字?

我正在使用这个库:https://github.com/pebbe/zmq4用于ZeroMQ的Go绑定(bind)。我的问题是,如何安全地关闭正在等待消息的套接字?我正在考虑为每个套接字创建一个新的上下文,然后我可以终止上下文。但是pebbe/zmq4库不允许我创建新的上下文(或者在我看来是这样)。感谢您的帮助。 最佳答案 我将采纳一位教授的简单而有效的建议。关闭时,我向套接字发送一个唯一的终止代码并等待直到套接字读取它并自行关闭。 关于GoZMQ4-关闭在Recv上阻塞的套接字?,我们

Go ZMQ4 - 关闭在 Recv 上阻塞的套接字?

我正在使用这个库:https://github.com/pebbe/zmq4用于ZeroMQ的Go绑定(bind)。我的问题是,如何安全地关闭正在等待消息的套接字?我正在考虑为每个套接字创建一个新的上下文,然后我可以终止上下文。但是pebbe/zmq4库不允许我创建新的上下文(或者在我看来是这样)。感谢您的帮助。 最佳答案 我将采纳一位教授的简单而有效的建议。关闭时,我向套接字发送一个唯一的终止代码并等待直到套接字读取它并自行关闭。 关于GoZMQ4-关闭在Recv上阻塞的套接字?,我们

Linux下ZMQ的安装

一、编译安装1.1、安装依赖sudoapt-getinstalllibtoolpkg-configbuild-essentialautoconfautomake1.2、编译安装ZMQ使用的加密库gitclonegit://github.com/jedisct1/libsodium.gitcdlibsodium./autogen.sh./configuremakechecksudomakeinstallsudoldconfigcd../1.3、编译安装libzmqgitclonegit://github.com/zeromq/libzmq.gitcdlibzmq./autogen.sh./con