为什么 NodeJS 客户端不断断开与 RabbitMQ 代理的连接?
Why does NodeJS client continuously keep on disconnecting to RabbitMQ broker?
我在 Windows Server 2016 上安装了 RabbitMQ 代理。我必须使用 NodeJS 客户端连接到它,但它不断断开连接并再次连接到代理。你能建议可能出了什么问题吗?我浏览了很多文章,但没有解决我的问题。
为了实现这一点,我在 rabbitmq.config 文件中提到了 tcp keep-alive 但它并没有解决我的问题。
我的配置文件如下所示:
rabbitmq.config(位置:C:\Users\\AppData\Roaming\RabbitMQ)
mqtt.listeners.tcp.default = 1883
## Default MQTT with TLS port is 8883
# mqtt.listeners.ssl.default = 8883
# anonymous connections, if allowed, will use the default
# credentials specified here
mqtt.allow_anonymous = true
mqtt.default_user = test
mqtt.default_pass = test
mqtt.vhost = dev
mqtt.exchange = amq.topic
# 24 hours by default
mqtt.subscription_ttl = 86400000
mqtt.prefetch = 10
net.ipv4.tcp_keepalive_time=60
net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_probes=3
handshake_timeout = 60000
理想情况下,客户端应该只连接到代理一次,并继续侦听来自该代理的端口。它永远不应该在两者之间断开连接。
在对配置文件进行一些更改后,我总是停止 rabbitmq,然后使用 RabbitMQ 的 sbin 目录中的以下命令再次启动:
rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start
当我点击第二条命令时,出现错误,提示配置文件应为 Erlang 格式,扩展名为“.conf”。我也这样做了,但我又遇到了同样的问题。
配置中是否缺少任何内容?请提出建议。
我发现客户是敏感的,例如,如果您尝试两次确认同一条消息,他们将断开连接。连接到经纪人后,您是否正在做任何事情?设置已经存在的具有不同参数的队列,声明交换?
我在 Windows Server 2016 上安装了 RabbitMQ 代理。我必须使用 NodeJS 客户端连接到它,但它不断断开连接并再次连接到代理。你能建议可能出了什么问题吗?我浏览了很多文章,但没有解决我的问题。
为了实现这一点,我在 rabbitmq.config 文件中提到了 tcp keep-alive 但它并没有解决我的问题。
我的配置文件如下所示: rabbitmq.config(位置:C:\Users\\AppData\Roaming\RabbitMQ)
mqtt.listeners.tcp.default = 1883
## Default MQTT with TLS port is 8883
# mqtt.listeners.ssl.default = 8883
# anonymous connections, if allowed, will use the default
# credentials specified here
mqtt.allow_anonymous = true
mqtt.default_user = test
mqtt.default_pass = test
mqtt.vhost = dev
mqtt.exchange = amq.topic
# 24 hours by default
mqtt.subscription_ttl = 86400000
mqtt.prefetch = 10
net.ipv4.tcp_keepalive_time=60
net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_probes=3
handshake_timeout = 60000
理想情况下,客户端应该只连接到代理一次,并继续侦听来自该代理的端口。它永远不应该在两者之间断开连接。
在对配置文件进行一些更改后,我总是停止 rabbitmq,然后使用 RabbitMQ 的 sbin 目录中的以下命令再次启动:
rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start
当我点击第二条命令时,出现错误,提示配置文件应为 Erlang 格式,扩展名为“.conf”。我也这样做了,但我又遇到了同样的问题。
配置中是否缺少任何内容?请提出建议。
我发现客户是敏感的,例如,如果您尝试两次确认同一条消息,他们将断开连接。连接到经纪人后,您是否正在做任何事情?设置已经存在的具有不同参数的队列,声明交换?