BetterJS / doc

Description of badjs
583 stars 70 forks source link

千万PV 之 badjs 升级 #15

Open caihuiji opened 8 years ago

caihuiji commented 8 years ago

badjs 的消息通信模块默认使用 axon ,其是 TJ 编写的 javascript 版本的zmq 。 虽然性能优越,但是限于 node 本身的内存有限制,在海量 PV 下面会存在NODE内存溢出的问题消息延迟的问题。 我们建议上报的PV 在1000W 左右的,可以使用 zmq 替换axon ,其升级的方式如以下:

  1. 首先用户要下载和安装 zmq ,参见这里 #1
  2. 完成安装后,即可将 badjs-acceptor , badjs-mq , badjs-web , badjs-storage 下分别 npm install zmq, 最后修改各自下面的配置文( project.json) 中的 axon 替换为 zmq 即可。
CircleSmall commented 7 years ago

你好,具体问下,在海量PV下,axon 会内存溢出的具体原因是啥呢? 解决内存溢出,可不可以通过修改node 内存配置或者代码重构来解决, 而不是替换成zmq ? @caihuiji

miniflycn commented 7 years ago

简单说,zmq 是纯 C++ 实现的本身就比用 NodeJS 实现的 axon 性能要好,故在 PV 足够大的情况下,还是建议使用 zmq,而非 axon。

caihuiji commented 7 years ago

@CircleSmall node 本身在32位下的操作系统下面内存限制是 512M ,64位是 1024M。 分发数据性能肯定跟zmq 不能比的。 当数据量很多的情况下,建议升级c++ 实现的 zmq