问题标签 [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.
benchmarking - 为什么这个 JeroMQ(ZeroMQ 端口)基准测试这么慢?
我想使用我发现的这个库,它是 zeromq 的纯 Java 端口(不是包装器)。我正在尝试对其进行测试,虽然它声称有一些不错的数字,但我正在执行的测试结果相当糟糕,甚至在本地执行(客户端和在同一台机器上服务)。我确定这是我做错了什么。大约需要。5 秒来执行这 10.000 条消息循环。
我所做的只是采用 Hello world 示例并删除了暂停和系统输出。这是代码:
服务器:
客户端:
是否可以修复此代码并获得一些不错的数字?
zeromq - jeromq 生产准备好了吗?
我过去曾通过库将 ZeroMQ 与 JVM 应用程序一起使用jzmq
。我计划在一个新项目中使用 zeromq,其中一些服务是在 JVM 上实现的。我刚刚发现了jeromq,它是 zeromq 的纯 java 实现,我想主要使用它,因为它跟踪 zeromq 3.x,它消除了处理jzmq
. 但是,我无法从 repo 页面判断它是否已准备好生产。有人有jeromq
生产经验吗?
zeromq - 如何在 Java 中使用 ZeroMQ 创建原始套接字?
我正在尝试将 ZeroMq Hello World Http 服务器从 C 移植到 Java。在此代码片段中,router
套接字设置为读取原始数据,但我不知道如何在 Java 中执行此操作...
根据指南,存在套接字类型ZMQ_ROUTER_RAW
,所以我认为这可以在 Java 中使用...
...但实际上,我在 Java bindings中找不到这种类型的任何常量。而且我在 Socket 中也找不到合适的静态方法。我怀疑我在这里遗漏了一些东西;这很令人沮丧,因为这是一个小 API。
android - 在 jeromq 中使用轮询
我正在学习在 android 中使用 zeromq 轮询。我正在对 android 程序(客户端)中的 req 套接字和子套接字进行轮询。这样该客户端既可以接收来自服务器的回复消息,也可以接收发布的消息。
我的投票不起作用。请求套接字和发布套接字都没有被轮询。如果我不使用轮询,两个套接字都会收到消息。
我尝试在线搜索,但找不到任何相关内容。客户端代码是这样的:
}
我错过了什么或做错了什么?
java - jeromq:关闭上下文失败
编辑:解决了自己,见下文(虽然我不确定我是否在这里偶然发现了一个错误)
使用下面简单的 hello-world request-reply 示例,在程序结束时关闭上下文失败:它只是挂起ctx.close()
或抛出以下异常:
无论哪种方式,程序都不会停止。
这是代码(请注意,套接字都在创建它们的线程中关闭):
编辑:解决了
事实证明这socket.close()
不起作用,仅此ctx.destroySocket(socket)
就足够了(它还关闭了套接字)。所以删除socket.close()
解决了这个问题。这是一个错误吗?
zeromq - 如果可以使用 JZMQ,为什么还需要 JeroMQ?
简单的问题。为什么在 java 上“移植”zmq 并将其称为 JeroMQ 是个好主意?
java - zeromq - 从 Tomcat 登录时处理 IOException
抱歉,我对 Java 比较陌生。我正在编写一个库来使用 zeromq (jeromq) 将日志从 Java 应用程序发送到 Logstash。
我的测试服务器之一是在 Tomcat 中运行的繁忙的 Jenkins 主服务器。我的图书馆,“Logit”(https://github.com/stuart-warren/logit)使用 PUSHPULL 套接字将其 JSON 格式的日志(JUL)喷洒到配置的 Logstash 端点列表(用于一些基本的负载平衡)上速度。
不幸的是,几天后它遇到了异常。Tomcat/Jenkins 继续工作并将日志写入其正常文件,但 Logit 停止通过网络发送消息。
我正在使用来自测试 6 节点 Cassandra 集群的相同版本的库日志记录(log4j),但我想这可能只是运气?
我的问题是,发送消息时应该如何处理上述异常?https://github.com/stuart-warren/logit/blob/master/src/main/java/com/stuartwarren/logit/zmq/ZmqTransport.java#L115。
我应该关闭并重新打开套接字/上下文,还是应该在 Jeromq 库中处理?也许Tomcat更有可能抛出这些,它应该在我的JUL appender中处理?
谢谢。
messaging - ZeroMq 路由器静默丢弃消息
我有一个服务器(ROUTER 套接字),它绑定并允许单个客户端(DEALER 套接字)连接到它。然后服务器开始发送数据。
理想情况下,我想知道路由器何时达到其 hwm 设置并开始丢弃消息。我已在路由器上将 ZMQ_ROUTER_MANDATORY 设置为 1,但这也无济于事。即使我故意没有启动客户端,路由器也会继续报告消息已发送(isAlive = false,因此在另一端没有任何东西可以提取这些消息)。
我做错了什么还是 HWM 设置在 ROUTER 套接字上根本不可靠?
我在 Windows 7 64 位上使用 jeromq 版本 0.3.1 和 jdk 1.6.0_32
谢谢
//客户
//主要的
zeromq - 使用 zeromq (jeromq) 路由文件
我正在尝试在 zmq 上实现“文件调度程序”(实际上是 jeromq,我宁愿避免使用 jni)。
我需要的是将传入文件负载平衡到处理器:
- 每个文件仅由一个处理器处理
- 文件可能很大,所以我需要管理文件传输
理想情况下,我想要类似https://github.com/zeromq/filemq但是
- 具有推/拉行为而不是发布/订阅
- 能够处理接收到的文件而不是将其写入磁盘
我的想法是混合使用 taskvent/tasksink 和 asyncsrv 示例。
客户端:
- 一个 PULL 套接字被通知要处理的文件
- 一个 DEALER 套接字逐块处理(异步)文件传输块
服务器端:
- 一个 PUSH 套接字来分派传入的文件(名称)
- 一个 ROUTER 套接字来处理文件请求
- 一些 DEALER 工作人员管理客户端的文件传输并通过 inproc 代理连接到路由器
我的第一个问题是:这似乎是正确的方法吗?有没有更简单的?
我的第二个问题是:我当前的实现卡在发送实际文件数据上。
- 客户端由服务器通知,并发出请求。
- 服务器工作人员收到请求,并将响应写回 inproc 队列,但响应似乎永远不会离开服务器(在 wireshark 中看不到),客户端卡在 poller.poll 上等待响应。
这不是套接字已满并丢弃数据的问题,我从一次性发送的非常小的文件开始。
有什么见解吗?
谢谢!
===================
按照 raffian 的建议,我简化了我的代码,删除了推/拉额外的插座(现在你说它确实有意义)
我只剩下“不工作”的插座了!
这是我当前的代码。它有许多目前超出范围的缺陷(客户端 ID、下一个块等)
现在,我只是想让两个人大致按照这个顺序交谈
服务器
/li>客户
/li>