问题标签 [jeromq]

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 投票
1 回答
208 浏览

zeromq - 通过 ZMQ 发送时,较长的字符串使用多少字节?

我正在使用 Python 和 Java 中的 ZeroMQ / ZMQ 并且有一个问题。发送较短的字符串时,ZMQ 使用此处所述的一个字节 ( http://zguide.zeromq.org/page:all#A-Minor-Note-on-Strings )

然后在线上的是一个长度(较短的字符串为一个字节)和字符串内容作为单个字符。

有谁知道发送更长的字符串时使用了多少字节?

0 投票
1 回答
164 浏览

zeromq - 多个进程记录到 ZeroMQ Appender

我使用 log4j (2.11) 在多台机器上运行多个进程。我需要整合要在前端显示的日志消息,并希望每个进程使用 ZeroMQ Appender 将日志消息发布到单个连接。然后,我将让一位订阅者接收消息,执行合并,然后显示日志消息。

我有一个与一个发布者合作的玩具应用程序(进程日志记录);但是,当多个进程尝试连接到同一个端点时,我会收到“地址已在使用”错误消息。这(很可能)意味着 log4j ZeroMQ (JeroMQ) appender 正在执行“绑定”,因为只有一个进程可以绑定 zmq 套接字。

是否有让 log4j ZeroMQ Appender 执行“连接”而不是“绑定”的配置选项,或者是否有另一个选项可用于实现相同的目标。

0 投票
0 回答
115 浏览

java - 如何编译 Jeromq 包,ZeroMQ 的 java 实现

Jeromq 是 ZeroMQ 的 java 实现。我正在对通信(TCP,UDP ...)进行一些更改,并且我想在Linux中编译Jeromq,可以编译Jeromq包的命令是什么。知道我正在使用以下命令运行它: mvn exec:java -Dexec.mainClass=guide.hwserver -Dexec.classpathScope=test

0 投票
1 回答
108 浏览

java - 在多线程执行中关闭 JeroMQ-Worker 的套接字

考虑以下工人:

抛出pullSocket.recvStr()如下java.nio.channels.ClosedByInterruptException场景

被执行。

我怎样才能避免这种异常或者在invokeAny()被调用时处理套接字关闭的首选方法是什么?

0 投票
0 回答
1560 浏览

zeromq - org.zeromq.ZMQException:Errno 48:地址已在使用中

我正在尝试使用 ZeroMQ 实现一个发布订阅示例。我在一个 docker 容器中运行发布者的代码,在另一个容器中运行订阅者的代码。

我的订阅者是:

我的出版商是:

当我启动应用程序时,我注册了一个订阅者,日志是:

我的问题是,当我调用时sendEventMessage,订阅者没有收到任何内容,并且在发布者上我收到此错误:

有什么想法为什么我不能绑定到订阅者连接的地址?

0 投票
0 回答
85 浏览

java - Java runnable 在 zeromq 发布者断开连接时死亡

我有一个实现 Runnable 的 java 进程,用于向 zeromq 发布者/推送者订阅/拉取/拉取数据,收集一段时间的数据,一旦达到一定数量或记录,将它们插入数据库。一切正常,但是当发布者/推送者停止工作时,处理和收集数据的过程立即终止。发布者重新启动后,一切正常,但不会插入内存中收集的记录,因为该过程会立即停止。这会导致发布者重新启动时丢失数据,这是我的问题。

我已经尝试过检查线程中断,用各种 try/catch 语句等围绕代码。对于我可以尝试实施的其他解决方案,我真的迷失了,有什么建议吗?

这是代码的相关部分:

我想也许对 while 循环使用不同的条件可能是一个解决方案,但我不确定是什么条件。

0 投票
0 回答
116 浏览

java - ScheduledThreadPoolExecutor 在线程启动时初始化资源并将其注入到 worker-runnable

我有一个资源(在我的例子中是 zmq 套接字,但这个细节可以忽略)。该资源不是线程安全的,只能从打开连接的线程中使用。

我想在 ScheduledThreadPoolExecutor 中使用它。所以我理想的工作流程是:

  • 启动时线程打开连接
  • 每个工作任务都应该实现和接口(socketAware)
  • 当前线程的套接字通过接口的方法注入到工作人员。

    /li>

除了使用反射之外,现在有什么方法可以将打开的套接字传播回该线程执行的每个 Runable ?

看起来 ThreadPoolExecutor.beforeExecute 可以做到这一点,但它不适用于 ScheduledThreadPoolExecutor,因为 runnable 不是我提交的,而是已经装饰的东西。

0 投票
0 回答
171 浏览

java - camel-zeromq 未正确终止 JeroMQ 上下文

我创建了一个小的 Apache Camel 示例,它使用了 camel-zeromq 组件。JeroMQ 被配置为 ZMQ 实现。

这里摘录build.gradle.kts

当设置了一个小的超时值时,关闭时会发生以下两个错误ShutdownStrategy,否则不会记录错误并且应用程序不会完全终止。

java.lang.IllegalStateException: null at zmq.Ctx.terminate(Ctx.java:198) ~[jeromq-0.4.0.jar:na] at org.zeromq.ZMQ$Context.term(ZMQ.java:316) ~ [jeromq-0.4.0.jar:na] 在 org.apacheextras.camel.component.zeromq.Listener.stop(Listener.java:130) ~[camel-zeromq-2.22.0.jar:2.22.0] 在 org .apacheextras.camel.component.zeromq.ZeromqConsumer.doStop(ZeromqConsumer.java:63) [camel-zeromq-2.22.0.jar:2.22.0]

java.lang.InterruptedException: null at java.lang.Object.wait(Native Method) ~[na:1.8.0_40] at java.lang.Thread.join(Thread.java:1253) [na:1.8.0_40] at org.apacheextras.camel.component.zeromq.ZeromqProducer.stop(ZeromqProducer.java:122) ~[camel-zeromq-2.22.0.jar:2.22.0]

更多详细信息可在此处此处获得。该项目在GitHub上可用。

0 投票
1 回答
165 浏览

zeromq - 使用主要 domo 模式的 ZMQ 实现。是否可以在工作代理和代理客户端之间混合连接协议?

我已经成功地将工作人员和代理连接到 tcp 协议上,然后客户端连接到 tcp 上的代理。现在我正在评估工人和代理是否有可能在 ipc/inproc 协议上连接,而客户端将在 tcp 上连接到代理。我的工人和经纪人将在同一台机器上,甚至可能驻留在同一进程中。我的客户可以从不同的机器连接到我的代理,这就是它需要在 tcp 上的原因

Broker可以双向绑定吗?

0 投票
1 回答
327 浏览

zeromq - 使用具有特定 IP 地址而非 localhost 的 Pub-Sub ZeroMQ 套接字时获取 Errno 48

我收到以下错误

线程“主”org.zeromq.ZMQException 中的异常:Errno 48:org.zeromq.ZMQ$Socket.mayRaise(ZMQ.java:3533) 的地址已在 org.zeromq.ZMQ$Socket.bind(ZMQ.java :2987) 在 com.zmq.pub_sub.Publisher.main(Publisher.java:16)

这是我的发布者类:

PS:我想在两台远程机器之间使用 ZMQ