问题标签 [zeromq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1515 浏览

erlang - 0MQ 带绿色线程?

我已经开始喜欢 erlang,它是一个非常适合我的问题的(咳嗽)架构。同时,我仍然喜欢想象我可以在 python 中混合 erlang 进程和异步消息传递(我目前正在接受治疗以摆脱这种痴迷)。

在最近的一次狂欢中,我遇到了 0MQ,我喜欢它的消息传递功能。对于 erlang/OTP 专家来说,这些可能是不言而喻的,但我只是一个不起眼的 Python 程序员(我的缩水者无疑会读到这个聪明的论点)。0MQ用户指南声明它使用本地操作系统线程,而不是虚拟“绿色”线程。

  1. 有没有办法让 0MQ 与说 eventlet/gevent 一起工作?

  2. 或者,我是否应该避免绿眼怪物并坚持使用单个 Python 应用程序线程,由 0MQ 的消息队列处理非阻塞 I/O 以及它自己(熟练)使用本机线程?

  3. 或者,退出康复中心并返回二郎?

0 投票
7 回答
9887 浏览

java - 纯 java ZeroMQ 客户端?

我正在尝试使用 ZeroMQ 的 pub sub 消息传递,但客户端要求代码全部为 Java。我知道 ZeroMQ 有一个 Java 绑定,但它仍然依赖于 ac 库,因此我无法使用它。是否有我可以用来连接到服务器的 ZeroMQ 客户端,或者实现是否足够简单让我自己做?

0 投票
8 回答
19123 浏览

macos - 如何在 OSX 上为 ZeroMQ 编译 jzmq?

尝试遵循以下指示:http: //github.com/zeromq/jzmq

我使用 Homebrew 安装了 pkg-config,然后运行以下命令: ./autogen.sh ./configure

配置失败:

0 投票
2 回答
7236 浏览

iphone - 为 iPhone 编译 C 库

我正在尝试编译 ZeroMQ C 绑定以便能够在 iPhone 上使用它,这是我的配置选项:

./configure --host=arm-apple-darwin --enable-static=yes --enable-shared=no CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 CFLAGS="-pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=3.1.2 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -mdynamic-no-pic" CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar AS=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/as LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib

它实际上可以很好地配置和编译,但是当我将它添加到 Xcode Frameworks 部分时,我收到警告:ld: warning: in /path/to/app/libzmq.a, file was built for unsupported file format which is not the architecture being linked (armv7)并且很多符号未找到错误。

如果我将当前活动架构从 armv6 更改为 armv7,警告消息会将其更改为 armv6。我究竟做错了什么 ?

谢谢,丹

0 投票
6 回答
7912 浏览

python - ZeroMQ 工作者应该如何安全地“挂断”?

我这周开始使用 ZeroMQ,当使用请求响应模式时,我不确定如何让工作人员安全地“挂断”并关闭他的套接字,而不会丢失消息并导致发送该消息的客户永远不会收到回复。想象一个用 Python 编写的工人看起来像这样:

我一直在做实验,发现提出公平排队请求127.0.0.1:9999的套接字类型的客户可能会不幸让公平排队算法在工人完成最后一次但在它运行之前立即zmq.REQ选择上述工人send()下面的close()方法。在这种情况下,似乎请求被工作进程中的ØMQ堆栈接收和缓冲,然后当close()抛出与套接字相关的所有内容时,请求就会丢失。

工作人员如何“安全地”分离——有什么方法可以发出“我不再需要消息”的信号,然后(a)循环在信号传输期间到达的任何最终消息,(b)生成它们的回复,然后(c)close()在保证没有消息被丢弃的情况下执行?

编辑:我想我想进入的原始状态是“半关闭”状态,在这种状态下无法接收到进一步的请求——并且发件人会知道——但返回路径仍然打开,以便我可以检查我的最后一条消息的传入缓冲区,如果缓冲区中有一条消息,则对其进行响应。

编辑:为了回答一个好问题,更正了描述以使等待消息的数量成为复数,因为可能有许多连接在等待回复。

0 投票
1 回答
3481 浏览

networking - 阻塞操作和 ZeroMQ

我正在设计一个分布式系统,其中单线程服务器进程执行 CPU 密集型操作。这些操作由 ZeroMQ 网络消息触发。

如果单线程进程正在执行 CPU 密集型工作,I/O(ZeroMQ 套接字)会阻塞吗?

谢谢!

0 投票
1 回答
188 浏览

append - 仅附加服务器性能

我正在构建一个用于学习目的的小型 Web 服务器。

对于每个传入的 POST 请求,我计划将内容附加到文件中。

  • 我正在使用 ZeroMQ 套接字与文件附加进程进行通信。我需要特别注意文件操作(fopen、fseek)吗?

  • 考虑到一个典型的 Amazon EC2 实例并且每个请求最多有 1kb,我的服务器每秒可以处理多少个文件附加操作?

谢谢!

0 投票
3 回答
10152 浏览

c# - ZeroMQ / ØMQ / 0MQ 如何入门?

我正在尝试使用C# Binding在 Windows 上使用 ZeroMQ / ØMQ / 0MQ (你喜欢哪个) 。有没有初学者的资料?我是否需要在 Windows 上注册 ZeroMQ DLL 或其他东西才能运行 C# 绑定示例(local_lat / remote_lat)?

更新:几个小时后,我在 Ubuntu 10.04 上运行了 zeromq / ruby​​。我在这篇博文上发表了评论,说明如何在 Ubuntu 10.04 上安装 zeromq / ruby​​。但我仍在试图弄清楚如何在 Windows / C# .NET 上运行一个简单的示例。

在 ubuntu 10.04 上安装 rvm

http://www.christopherirish.com/2010/08/25/how-to-install-rvm-on-ubuntu-10-04/

安装 zeromq

http://gist.github.com/574656

如果在安装 zeromq 后出现错误,请尝试使用此更新库

http://www.apparatusproject.org/blog/tag/zeromq/

0 投票
1 回答
1292 浏览

queue - 基于 ZeroMQ 的分布式系统

在具有以下数据流的分布式系统中:

  1. 客户端为分布式系统中的随机节点发送消息。
  2. 该节点检查该操作是否可以由他执行。如果不是,则将消息发送到其他节点。并且该过程一直持续到正确的节点。

所以系统有以下流程:

客户端 -> nodeX -> nodeY -> nodeZ

如果我想向客户端(从 nodeX)发送 OK 信号,该进程会使用 ZeroMQ 阻塞吗?

谢谢!

0 投票
1 回答
2240 浏览

sockets - ZeroMQ 设计决策

在 REQ/REP 套接字中,如果套接字向死(断开连接)节点发送请求,则消息不会被传递并停留在占用内存的消息队列中。如何清理这些未传递的消息(比如说,队列中超过 1 分钟的消息)?

谢谢!