配置RabbitMQ声明队列时如何添加x-single-active-consumer参数
在MassTransit的RabbitMQ接收端点配置中,直接使用端点配置器提供的SetQueueArgument方法即可设置队列声明时的自定义参数,不需要走消息收发相关的ConfigureSend/ConfigureReceive逻辑——这两个方法是配置消息处理管道的,和队列声明参数无关。
具体配置代码如下:
busConfigurator.UsingRabbitMq((context, rabbitConfig) => { // 其他全局配置省略 rabbitConfig.ReceiveEndpoint(endpointName, a => { // 声明队列时传入单活消费者参数 a.SetQueueArgument("x-single-active-consumer", true); a.ConfigureConsumer(context, consumerType); // 原有其他配置保留即可 // a.ConfigureSend(...) // a.ConfigureReceive(...) }); });
补充说明:如果对应队列已经在RabbitMQ服务端存在,需要先删除原有队列再启动服务让MassTransit重新声明。RabbitMQ不支持对已存在的队列修改
x-single-active-consumer属性,不删旧队列的话配置不会生效。
内容的提问来源于stack exchange,提问作者user606521
相关产品推荐
相关产品推荐

