【发布时间】:2020-03-26 09:23:28
【问题描述】:
我正在为我的 IOT 设备使用 RabbitMQ 将数据推送到服务器。从 RabbitMQ 使用 nodejs 服务从特定主题订阅数据。为了获得更大的可用性,我正在为此服务使用自动缩放。当服务将根据其要求进行扩展时,它可以在 2 或 3 个实例中运行。因为这 2 或 3 个实例,它将多次订阅来自主题的相同消息。我该如何防止这种情况(订阅同一主题的多个实例不会重复)。一个实例读取消息应该从 RabbitMQ 主题中删除我该如何解决这个问题?
请建议:
我的代码是这样的:
var mqtt = require('mqtt');
var clientId = 'mqttjs_' + Math.random().toString(16).substr(2, 8)
var client = mqtt.connect({
clientId: clientId,
host: "mqtt.host.co",
port: 8883,
'username': "user_name",
'password': "password",
protocol: 'mqtt.MQTTv311',
resubscribe: true
});
// for topics starting at topic_name/
client.subscribe('topic_name/#', { qos: 0 })
【问题讨论】:
-
顺便说一句,如果 MQTT Node.JS 模块不在连接选项中,它将为您自动生成一个 clientId。
标签: javascript node.js rabbitmq mqtt