cluster-client:在多进程Node.js之间共享连接

时间:2024-05-30 01:00:19
【文件属性】:

文件名称:cluster-client:在多进程Node.js之间共享连接

文件大小:58KB

文件格式:ZIP

更新时间:2024-05-30 01:00:19

JavaScript

集群客户端 在多进程Node.js之间共享连接 众所周知,每个Node.js进程都在单个线程中运行。 通常,我们将单个进程分为多个进程以利用多核系统。 另一方面,由于维护服务器之间的更多TCP连接,因此带来了更多的系统开销。 该模块旨在在多进程Node.js之间共享连接。 理论 受到启发。 只允许一个进程“领导者”与服务器通信。 其他进程“跟随者”充当“代理”客户端,并将所有请求转发给领导者。 领导者由“港口竞争”选拔。 每个进程都尝试侦听某个端口(例如7777),但是只有一个进程可以占用该端口,然后该端口成为Leader,其他进程变为Followers。 领导者和关注者之间保持TCP套接字连接。 我设计了一个简单的通信协议,可以在它们之间交换数据。 如果旧的领导者去世,将选择其中一个流程作为新的领导者。 图表 正常(不使用群集客户端) + -- -- -- -- + +


【文件预览】:
cluster-client-master
----.travis.yml(171B)
----.eslintrc(36B)
----index.js(2KB)
----package.json(2KB)
----.github()
--------PULL_REQUEST_TEMPLATE.md(876B)
----test()
--------server.test.js(1KB)
--------cluster.test.js(2KB)
--------supports()
--------utils.test.js(2KB)
--------edge_case.test.js(2KB)
--------client.test.js(10KB)
--------close.test.js(2KB)
--------index.test.js(24KB)
--------register_error.test.js(2KB)
--------follower.test.js(1KB)
--------event.test.js(1KB)
--------connection.test.js(3KB)
--------lazy.test.js(2KB)
--------async.test.js(602B)
--------ready.test.js(2KB)
----LICENSE(1KB)
----appveyor.yml(268B)
----AUTHORS(547B)
----.gitignore(161B)
----History.md(4KB)
----lib()
--------connection.js(4KB)
--------wrapper()
--------utils.js(2KB)
--------default_transcode.js(122B)
--------index.js(6KB)
--------protocol()
--------follower.js(7KB)
--------server.js(6KB)
--------const.js(79B)
--------default_logger.js(290B)
--------api_client.js(2KB)
--------symbol.js(1KB)
--------leader.js(13KB)
----README.md(9KB)
----.eslintignore(54B)

网友评论