两个 node 进程之间如何通信,有没有可能写一个 node 的扩展来实现两个进程之间的通讯?

2014-02-13 14:27:34 +08:00
 yakczh
5900 次点击
所在节点    Node.js
8 条回复
dcoder
2014-02-13 14:46:10 +08:00
yakczh
2014-02-13 14:57:51 +08:00
@dcoder 这个只是一个监控工具,跟在命令行批处理启动多个node没什么区别
我说的通信是任意两个进程之间可以 用 receive { xx ->;oo-> } 来互相发消息
jacobbubu
2014-02-13 15:33:13 +08:00
基于连接的话,可以用 dnode, 基于 net, socks 或者其他你自己实现的 stream实现的 rpc框架。
基于消息的话,可以用 zeromq。zmq是用来构造自有通信系统的乐高积木,一般情况下比上面的方法学习和构建成本要高,但是可构建非常高效复杂的通信系统。
如果是要实现分布式状态同步,那么可以考虑Scuttlebutt 的方式,也是基于任何 node stream。
总之,进程间通信不是一个准确的问题,要看具体如何通信,解决什么问题,才会有“更”合适的方法
Livid
2014-02-13 16:07:29 +08:00
让他们去访问同一个 Redis server 吧。
ETiV
2014-02-13 16:28:59 +08:00
redis pub/sub
lenzhang
2014-02-14 00:50:15 +08:00
直接用linux管道不知道行不行
dcoder
2014-03-18 14:47:29 +08:00
@yakczh 那你用 vert.x 吧,轻量级的多语言 message bus on JVM.
vert.x 刚刚支持 node.js 了: http://nodyn.io/

vert.x 自带的 cluster 支持比原生 node.js 强多了
http://nodyn.io/compatibility/
Cluster
Node.js reference http://nodejs.org/api/cluster.html
Clustering is handled for now through vert.x builtin clustering, which itself uses hazelcast for the implementation. Vert.x does not yet expose clustering data or an API.
rangercyh
2015-02-02 20:49:56 +08:00
@jacobbubu 我花了2天的时间把zmq的文档通读了一遍,但我还是不知道该用怎么样的模式来构建我的服务器,我清楚的知道我的每个进程需要处理什么内容,但是他们之间该用何种zmq模式搭建起来在看了文档之后我依然是比较困惑的,请问有没有什么用zmq搭建服务器的nodejs例子可以参考一下呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/100048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX