我在docker-compose中运行RabbitMQ图像,如下所示:
version: '2.2'
services:
rabbitmq:
networks:
- private
image: rabbitmq:3.8.0-beta.3-management
ports:
- 15672:15672
然后通过其他Node.js应用连接,如下所示:
const amqp = require('amqplib');
this._connection = await amqp.connect(xxxxxx);
console.log(this._connection.blocked);
this._connection.on("blocked", (reason) => {
console.log("!!!! connection blocked");
});
工作正常,但有几个问题:
console.log(this._connection.blocked);
输出undefined
; this._connection.on("blocked"
不起作用的原因答案 0 :(得分:0)
我已经检查了amqplib的document和source,注册事件回调是接收Blocked Connection Notifications
的唯一方法,amqplib连接没有使用某些成员变量来显示阻塞状态。
From offical document,我不确定这是否意味着在连接到已被阻止的服务器时没有通知:
如果在解除阻塞连接之前该节点也开始在磁盘空间不足的情况下运行,则不会发送已阻塞的另一个连接