问题描述
我是 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,IDictionary`2 arguments)
at RabbitMQ.Client.Impl.AutorecoveringModel.QueueDeclare(String queue,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 个用于使用数据。 但有时,连接仍然存在,但接收通道消失了 那么,为什么以及在什么情况下消费者渠道会断开连接?或任何解决方案?
提前致谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)