标签: zeromq

纯Java ZeroMQ客户端?

我正在尝试使用ZeroMQ的pub子消息,但客户端要求代码都是Java.我知道ZeroMQ有Java绑定但仍然依赖于ac库,因此我无法使用它.是否有可以用来连接服务器的ZeroMQ客户端,还是我自己做的简单实现?

java message-queue zeromq

12
推荐指数
3
解决办法
9462
查看次数

zeromq持久性模式

谁必须管理ZeroMQ中的持久性?

当我们在Python语言中使用ZeroMQ客户端时,有哪些插件/模块可用于管理持久性?

我想知道使用ZeroMQ的模式.

python persistent zeromq

12
推荐指数
1
解决办法
6970
查看次数

使用.Net绑定的ZeroMQ DllNotFoundException

我刚刚开始使用ZeroMQ并正在试验一些样本.我正在使用C#语言绑定并遇到了获取DllNotFound异常的问题.

将libzmq.dll复制到Windows/System32之后,我可以在我的开发机器上加载和运行样本,但是当我将其移动到其他服务器时,尽管将libzmq.dll复制到样本运行的文件夹中,我仍然会收到错误.进入Windows/System32.

我已将clzmq.dll放入示例应用程序所在的文件夹中,并且libzmq.dll此外,我将libzmq放入c:/ Windows/System32.我正在运行Windows Server 2003 Service Pack 2.当我检查机器环境变量时,WINDOWS/System32在PATH变量中.我还确定使用Release构建libzmq dll,而不是调试.

有可能我不明白应该如何使用ZeroMQ .Net绑定.我已将clzmq.dll(.Net Binding)添加到我的项目作为参考,我假设clzmq.dll会自动引用Windows PATH变量WINDOWS/System32上的libzmq.

有谁知道我是否对此有误.C#Binding文档(http://www.zeromq.org/bindings:clr)声明"ZeroMQ库文件需要可用于绑定才能工作",但它接缝我尽管无法使其可用将其复制到PATH变量中.

使用ZeroMQ .Net Bindings时是否有人遇到过DLL未找到的异常?

谢谢您的帮助,

dllnotfoundexception zeromq

12
推荐指数
2
解决办法
4778
查看次数

将pub/sub与zeromq中的req/rep结合使用

客户如何使用zeromq订阅和收听回复?也就是说,在客户端,我想运行一个只接收消息并有选择地发送请求的循环,而在服务器端我想发布大部分时间,但有时也会收到请求.看起来我必须有两个不同的插座 - 每个插槽用于一种通信模式.是否有可能避免这种情况,并在服务器端从zeromq回调线程上的套接字接收"请求通知",同时将消息推送到我自己的线程中的套接字?

zeromq

12
推荐指数
1
解决办法
8633
查看次数

使用Pub/Sub进行ZeroMQ主题过滤(Java绑定)

如何让ZeroMQ支持主题和模式匹配?

例如

stocks.*
stocks.appl
Run Code Online (Sandbox Code Playgroud)

从我的理解ZeroMQ ..该主题将成为消息的一部分,所以我需要将主题与订阅者中的实际消息分开.什么是分离主题和消息的最佳方式?你需要一个特殊的角色(例如SOH)吗?

filtering publish-subscribe zeromq

12
推荐指数
1
解决办法
1万
查看次数

将来自其他语言的消息发送到IPython内核

有没有人有从Python外部与IPython内核通信的经验?

如果我试图将消息从Python应用程序发送到IPython内核,我会使用zmq.kernelmanagerAPI.实际上,我显然需要用另一种语言编写自己的内核管理器,但是我找不到我正在寻找的有关低级消息传递协议的信息.

是否有官方规范或"备忘单"记录了在0MQ上发送的实际消息的结构?这个页面描述的是比我正在寻找的更高级别的协议......我是否必须手动拆分实现以找到我想要的内容?

python messaging protocols ipython zeromq

12
推荐指数
1
解决办法
2479
查看次数

没有中介的ZeroMQ Pub-Sub +动态发现

我正在测试ZeroMQ作为中型系统的Pub-Sub(服务总线式).我们有大约50个节点,所有节点都应该是发布者和订阅者.网络是一种星形拓扑,但边缘相互"交谈".我们需要动态发现(不需要硬编码参与者的网络地址),也没有SPOF(单点故障).

我已经阅读了http://zeromq.org/whitepapers:0mq-3-0-pubsub,据我所知,动态发现的建议0MQ方式涉及转发订阅和发布的代理节点(XPUB/XSUB).我考虑在我们的系统中使用这样的代理作为中央调解器,但是,我对这种架构有以下关注:(A)代理节点是SPOF - 当它失败时整个系统不起作用(B)所有流量,包括数据,通过代理节点,这意味着延迟和性能问题.

假设我正确理解了pub-sub白皮书,是否有一种相对简单的方法可以在ZeroMQ中实现pub-sub + dynamic-discovery + no-SPOF?

补充一点:我已经排除了多播(PGM)解决方案,因为大多数消息都有一个/很少的相关方,我们不喜欢过度拥挤的网络.

publish-subscribe zeromq message-bus

12
推荐指数
1
解决办法
5377
查看次数

Symfony2 WebSocketBundle - ZMQ Push无法正常工作

我正在使用Symfony2来构建一个简单的聊天应用程序.我决定使用GeniusesOfSymfony/WebSocketBundle作为我的WebSocket,由Ratchet提供支持:

https://github.com/GeniusesOfSymfony/WebSocketBundle

我设法使用PubSub进行聊天,但我想使用推送集成:我希望客户端通过AJAX将消息发送到我的Symfony2控制器,而控制器又将消息推送到WebSocket的所有客户端.

我按照这个文档页面:

https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/Pusher.md

我尝试过使用ZMQ和Websocket Pusher.

使用ZMQ,当我运行websocket时,我得到了cmd通知:

ZMQ传输监听127.0.0.1:5555

但是,推送消息不起作用:

$pusher = $this->container->get("gos_web_socket.zmq.pusher");
//push(data, route_name, route_arguments)
$pusher->push(["type" => "newMessage", "text" => $request->request->get("msg")], "chat_topic");
Run Code Online (Sandbox Code Playgroud)

这是我的ChatTopic类中的onPush方法:

class ChatTopic implements TopicInterface, PushableTopicInterface {

    public function onPush(Topic $topic, WampRequest $request, $data, $provider) {
        $topic->broadcast($data);
    }
}
Run Code Online (Sandbox Code Playgroud)

永远不会调用onPush方法.此外,推动事件永远不会被解雇.代码中似乎没有例外.

使用WebSocket Pusher,我甚至无法使服务运行.在cmd中没有像ZMQ那样的通知,并且使用netstat命令我无法检测到它正在侦听端口1337.当我尝试推送它时,我得到异常:

无法打开插座.原因:无法建立连接,因为目标计算机主动拒绝它

可能是因为没有服务侦听端口1337.

PS - 我在Windows 10上并使用WAMP服务器.我已成功在WAMP上安装了ZMQ扩展,如下所示phpinfo().

php zeromq websocket symfony ratchet

12
推荐指数
1
解决办法
674
查看次数

(Py)ZeroMQ为什么打开这么多Unix套接字文件?

lsof -U | wc -l在执行以下代码时尝试监视打开的Unix套接字文件的数量:

>>> import zmq
# 1375 Unix socket files
>>> c = zmq.Context()
# 1377 Unix socket files
>>> s = c.socket(zmq.PUSH)
# 1383 Unix socket files
>>> s.close()
# 1381 Unix socket files
>>> c.destroy()
# 1375 Unix socket files
Run Code Online (Sandbox Code Playgroud)

这是为什么?我希望在连接套接字时打开TCP / IPC套接字文件,但是在连接之前这些文件又如何呢?

看来它们都是“ STREAM”类型:

在此处输入图片说明

更新资料

有关重现此问题的有用脚本,请参见@gdlmx的答案。

看来,如果您使用Conda来安装,pyzmq一切都会按预期进行。我,但是,我仍然想知道为什么它不会工作,如果你安装pyzmqpip,我会考虑安装的软件包的标准方式。

重现步骤:

使用Conda:

conda create -n foo python=3.6
conda activate foo
pip install pyzmq
python test_script.py
Run Code Online (Sandbox Code Playgroud)

使用Python的venv

python3.6 …
Run Code Online (Sandbox Code Playgroud)

python zeromq pyzmq

12
推荐指数
1
解决办法
720
查看次数

我不开玩笑

在ZMQ消息传递库中,存在从基本"Pirate"模式派生的大量模式.引用文档:

我喜欢称海盗模式(我希望你最终得到这个笑话).

我对ZMQ架构有了很好的了解,已经与它一起工作了六十多年的项目.尽管如此,基本上阅读整本指南,我都不会开玩笑.

也许没有一个,但我无法帮助痒,我错过了一些相当明显的东西.谢谢.

documentation zeromq

11
推荐指数
1
解决办法
329
查看次数