我遇到了一些使用zeromq作为进程间通信的nodejs应用程序的问题。我已经将应用程序剥离到一个简单的发布/订阅客户端,仍然有问题。
当我执行这两个应用程序时,一切似乎都可以正常工作,但是如果我在半小时的时间内监视内存使用情况,sub.js进程会慢慢增长到> 40%的内存使用情况。
任何人都知道为什么会发生这种情况吗?
系统信息
Model: Raspberry Pi 3B+
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.9 (stretch)
Release: 9.9
Codename: stretch
Node Version: v12.4.0
Lib ZMQ Version: libzmq3-dev (4.2.1-4)
NPM ZMQ Version: 5.1.0
pub.js
const zmq = require('zeromq');
const socket = zmq.socket('pub');
socket.bindSync('tcp://*:50005');
setInterval(() => {
socket.send(`topic ${JSON.stringify({ prop1: 'abcdefghijklmnopqrstuvwxyz',
prop2: '1234567890' })}`);
}, 100);
sub.js
const zmq = require('zeromq');
const socket = zmq.socket('sub');
socket.subscribe('topic');
socket.on('message', (message) => {
message.toString();
}, 100);
socket.connect('tcp://127.0.0.1:50005');
我还在python中创建了一个相同的pub / sub场景,还没有观察到任何内存泄漏。