可以将Rebus配置为在RabbitMQ中将错误队列类型设置为仲裁吗?

可以将Rebus配置为在RabbitMQ中将错误队列类型设置为仲裁吗?,rabbitmq,rebus,rebus-rabbitmq,Rabbitmq,Rebus,Rebus Rabbitmq,我们有一个三节点RabbitMq集群,我们正在使用Rebus生成和使用来自Rabbit的消息。我们处理的消息对于数据安全至关重要,因此我们在RabbitMq中使用仲裁队列 现在的问题是,即使我们有一个兔子集群,我们也有一个单点故障;当承载Rebus错误队列的节点变得不可用时,会发生此错误。似乎有两种选择,要么镜像RabbitMQ中的错误队列,要么将错误队列设为仲裁队列 我找到了将输入队列类型设置为仲裁的方法: Configure.With(activator)

我们有一个三节点RabbitMq集群,我们正在使用Rebus生成和使用来自Rabbit的消息。我们处理的消息对于数据安全至关重要,因此我们在RabbitMq中使用仲裁队列

现在的问题是,即使我们有一个兔子集群,我们也有一个单点故障;当承载Rebus错误队列的节点变得不可用时,会发生此错误。似乎有两种选择,要么镜像RabbitMQ中的错误队列,要么将错误队列设为仲裁队列

我找到了将输入队列类型设置为仲裁的方法:

Configure.With(activator)
                        .Logging(l => l.ColoredConsole())
                        .Transport(t =>
                            t.UseRabbitMq(
                                    "connectionString", "MyQueue")
                                .InputQueueOptions(queueConfig =>
                                {
                                    queueConfig.AddArgument("x-queue-type", "quorum");
                                }))                    
                        .Start();
在Rebus中是否有办法使错误队列也成为仲裁队列?是否有充分的理由不将错误队列作为仲裁队列,而是使用镜像


在Rabbit中手动将错误队列创建为仲裁队列不起作用,因为Rebus抱怨队列类型不是“经典的”。

Rebus.RabbitMq 7.2.0能够自定义
。DefaultQueueOptions(…)
,就像您使用上面的
。InputQueueOptions(…)
一样–这意味着您的代码可以扩展到

Configure.With(激活器)
.Logging(l=>l.ColoredConsole())
.运输(t=>
t、 UseRabbitMq(“connectionString”、“MyQueue”)
.InputQueueOptions(queueConfig=>queueConfig.AddArgument(“x-queue-type”、“仲裁”))
.DefaultQueueOptions(queueConfig=>queueConfig.AddArgument(“x-queue-type”、“仲裁”))
)
.Start();

因此,Rebus.RabbitMq 7.2.0能够定制
.DefaultQueueOptions(…)
,就像您使用上面的
.InputQueueOptions(…)
一样–这意味着您的代码可以扩展到

Configure.With(激活器)
.Logging(l=>l.ColoredConsole())
.运输(t=>
t、 UseRabbitMq(“connectionString”、“MyQueue”)
.InputQueueOptions(queueConfig=>queueConfig.AddArgument(“x-queue-type”、“仲裁”))
.DefaultQueueOptions(queueConfig=>queueConfig.AddArgument(“x-queue-type”、“仲裁”))
)
.Start();

从而实现闪电般快速修复后的目标,感谢更新包。它似乎像一个魅力=)一样工作。闪电般快速的修复,感谢更新的软件包。它似乎像一个魔咒一样工作。