首页 > 解决方案 > RabbitMQ - 集群:一些队列显示异步和消费者通道自动断开连接

问题描述

我是 RabbitMQ 的新手。我使用的是 RabbitMQ 3.8.2 和 Erlang 22.1,并且只设置了 2 个节点的 RabbitMQ 集群。集群设置成功,然后我为 HA-Sync 添加策略如下:

rabbitmqctl set_policy ha-mirror "^" "{""ha-mode"":""all"",""ha-sync-mode"":""automatic""}"

但过了一天,我注意到一些队列处于非同步模式(+1 以红色突出显示)不确定,为什么会出现?并且队列消息显示NaN。所以在那之后,每当我创建队列时,它都会给我如下错误:

System.TimeoutException: The operation has timed out.
   at RabbitMQ.Util.BlockingCell.GetValue(TimeSpan timeout)
   at RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply(TimeSpan timeout)
   at RabbitMQ.Client.Impl.ModelBase.QueueDeclare(String queue, Boolean passive, Boolean durable, Boolean exclusive, Boolean autoDelete, IDictionary`2 arguments)
   at RabbitMQ.Client.Impl.ModelBase.QueueDeclare(String queue, Boolean durable, Boolean exclusive, Boolean autoDelete, IDictionary`2 arguments)
   at RabbitMQ.Client.Impl.AutorecoveringModel.QueueDeclare(String queue, Boolean durable, Boolean exclusive, Boolean autoDelete, IDictionary`2 arguments)
   at DGSL.TF.Messaging.RabbitmqConsumerServiceManager.QueueDeclare(List`1 queueNames)
   at DGSL.TF.Messaging.RabbitmqConsumerServiceManager.CreateTicketPublishFiltersAndQueuesByStation()
   at DGSL.TF.Messaging.RabbitmqConsumerServiceManager.StartConsumer()
   at DGSL.TF.QrCCWorkerSerice_Core.Worker.InitializeCacheAndStartRabbitMQAndStartBatchPublish()
   at DGSL.TF.QrCCWorkerSerice_Core.Worker.DoProcessIfDeviceIsCommissioned()
   at DGSL.TF.QrCCWorkerSerice_Core.Worker.ExecuteAsync(CancellationToken stoppingToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)

所以,请你让我知道我必须做些什么来避免不同步?我总是需要 2 个节点应该同步?

而且,我为一个连接创建了 2 个通道,1 个用于发布数据,1 个用于消费数据。但有时,连接仍然存在,但接收通道消失了 那么,为什么以及在什么情况下消费者通道会断开连接?或任何解决方案?

提前致谢

标签: rabbitmqrabbitmqctl

解决方案


推荐阅读