问题标签 [zerorpc]

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 回答
522 浏览

python - ZeroRPC 性能。我的基准有什么问题?

我写了一个简单的脚本来试图弄清楚 ZeroRPC 在消息吞吐量方面的表现如何,服务器是一个简单的服务,回应一个问候。客户端的代码如下,看到我正在尝试启动并行任务:


服务器很简单:

请注意,我使用的是 IPC 套接字,我希望每当添加更多任务时,吞吐量都会增加,直到达到某个上限。但实际上数字几乎总是相同的。即使我更改为真实的网络设置,数字也没有太大差异。按照我在上面的代码设置中得到的数字:


我还对 IPC 进行了一些测量,并且与 TCP 相比,我预计性能会有更大的差异。

我绘制了一个图表,见下图:

吞吐量 - TCP 与 IPC

我的印象是某些东西限制了性能的进一步提高。

也许我在我的代码中遗漏了一些东西,我正在考虑在一个重要的项目中使用 ZeroRPC,并希望了解它的性能。

  • 我在基准测试中做错了吗?
  • 这种性能水平是预期的吗?
  • 客户端中的连接数是否有任何限制?
  • 如果是,我可以增加数量吗?

更新<<<<

只是要清楚,因为缺少一些信息。对于上面的脚本,我确实运行了并行任务,当我启动两个客户端进程时,吞吐量下降了一半,假设一个客户端进程获得 2000,如果我启动第二个,每个客户端进程获得 1000。我不是性能专家,我只是决定自己进行测试,因为我认为该框架对于我正在从事的项目来说是一个很好的潜力。

0 投票
0 回答
13 浏览

javascript - ZeroRPC NodeJS 无法返回值

我遇到了 Javascript 和ZeroRPC库的问题, 我以这种方式创建了一个服务器:

服务器:

客户

我不明白为什么我不能从 client.invoke 调用中返回这个值。我错过了什么吗?

0 投票
1 回答
451 浏览

python - python zerorpc和多处理问题

我正在电子应用程序和 python 后端之间实现一个双向乒乓演示应用程序。

这是导致问题的python部分的代码:

每次从 javascript 端调用 ping() 时,它都会启动一个新进程来模拟一些工作(休眠 5 秒),并通过在 nodejs 服务器上调用 pong 来指示工作已完成。

问题是 pong() 请求永远不会到达 javascript 端。如果我没有生成一个新进程,而是使用 _thread 创建一个新线程并在 ping_response() 中执行相同的代码,那么 pong 请求就会到达 javascript 端。此外,如果我手动运行 bash 命令zerorpc tcp://localhost:4243 pong,我可以看到 nodejs 脚本收到了 pong 请求,因此 javascript 端的服务器工作正常。

当我创建一个新进程并且它无法发送请求时,zerorpc 客户端会发生什么?

谢谢你。

编辑 它似乎卡在 c.pong()

0 投票
0 回答
86 浏览

javascript - ZeroMQ - 错误:模块版本不匹配。预期 46,得到 67

在 Nodejs 中使用 ZeroMQ 消息传递时出现以下错误

这是nodejs服务器端的代码

节点 -v = v4.2.6 npm -v = 6.4.1

试过了

  1. “rm -rf node_modules && npm install”仍然出现同样的错误

  2. “npm install zeromq --build-from-source”不起作用

我被挡在了这个位置。感谢任何帮助

0 投票
1 回答
516 浏览

python - python zerorpc多线程

我正在尝试为 python 程序构建前端服务。我选择 zerorpc 在 NodeJS 和 python 之间进行通信,效果很好,唯一的问题是我不能正确地多线程 zerorpc。
我看过几篇关于 zerorpc 和普通线程如何相互不喜欢的帖子。但是,我的后端服务已经有些先进并使用了多个线程。
所以现在的问题是,是否有可能以某种方式将普通线程和 zerorpc 两者结合起来,还是我必须重写我的主代码以使用与 zerorpc 相同的线程库?
我使用普通线程遇到的主要问题是启动服务器的线程完全冻结,因此无法再关闭。这是我目前启动服务器的方式:

我还尝试使用以下功能杀死服务器,但这会导致异常,这是不可取的

预先感谢您帮助我!

0 投票
3 回答
3160 浏览

node.js - 无法使用 npm 安装 zerorpc

我需要安装zerorpc. 如文档中所述,我首先安装zeromq然后尝试了此命令:npm install -g zerorpc但我收到此错误:-

包.json

节点版本:v10.15.1 npm 版本:6.4.1

我所指的文章的链接

怎么解决,求大神帮忙!!

0 投票
1 回答
1020 浏览

python - Zerorpc 异步调用

服务器

假设我有以下 zerorpc 服务器

客户

和一个同时发送多个请求的客户端应用程序

问题是当 long_running_task 正在执行时 other_task 没有开始运行。

所需的输出是:

代替

0 投票
1 回答
72 浏览

gevent - APScheduler 和 zerorpc 不兼容

看起来使用 APScheduler 调度作业与 ZeroRPC 不兼容。

  • 使用 test(x) ZeroRPC 进行测试时效果很好。
  • 当以 run() 启动时,调度程序反复返回以下异常:

接下来,代码片段:

0 投票
1 回答
305 浏览

python - 在 Flask 应用程序中使用 zerorpc 会引发错误“操作将永远阻塞”

我有一个在 Python 中使用 zerorpc 的 RPC 服务器,以这种方式编写

当我创建客户端时它工作正常

并运行它。print() 输出此“视频”函数返回的内容。

但是,当我尝试在 Flask 应用程序的路由中使用相同的代码时,我收到以下错误:

文件“src/gevent/__greenlet_primitives.pxd”,第 35 行,gevent.__greenlet_primitives._greenlet_switch gevent.exceptions.LoopExit:此操作将永远阻塞 Hub:

烧瓶方法/摘录

我不知道会发生什么。我对 Python 很陌生,我知道这可能与 Flask 以及它如何处理线程有关,但我不知道如何解决它。

0 投票
1 回答
63 浏览

python - 可取消后端调用的架构推荐 [zerorpc 如果可能?]

我有一个电子应用程序前端(zerorpc-node)与一个 python 后端(zerorpc-python)通信,需要:

a) 能够向后端发送请求 [标准 zerorpc 调用]

b)能够同时运行多个后端进程[遵循https://github.com/0rpc/zerorpc-node/issues/96中的架构)

c)能够随意取消后端进程[不确定如何使用当前架构执行此操作]

任何关于如何构建 (c) 的解决方案的指导都会很棒。如有必要,如果它受到限制,我愿意从 zerorpc 切换,但如果解决方案涉及使用 zerorpc,那就太棒了。