Search code examples
.netrabbitmqmasstransit

Creating Quorum queue with ha-mode=all


I want to apologize in advanced, but I am not very experienced with MassTransit. I need help creating quorum queue and set "ha-mode" of the queue to "all" for MassTransit 8.0.15

My code is:

services.AddMassTransit(mt =>
{
    mt.AddConsumer(typeof(FileConsumer))
          .Endpoint(e => { e.Name = "my-queue"; e.InstanceId = ""; });

    mt.UsingRabbitMq((context, rmq) =>
    {
    rmq.Host(rabbitMqHost, host =>
   {                        
    host.Username(userName);
    host.Password(password);                        
   });

   rmq.ConfigureEndpoints(context);
   });
});

Any help will be appreciated. Thanks

I tried with adding: rmq.SetQueueArgument("x-queue-type", "quorum"); rmq.SetQueueArgument("x-ha-mode", "all");

but it didn't worked


Solution

  • I believe ha-mode is only for classic queues. Quorum queues are completely different. You can configure receive endpoints to use quorum queues by adding a configure endpoints callback:

    mt.AddConfigureEndpointsCallback((name, cfg) =>
    {
        if (cfg is IRabbitMqReceiveEndpointConfigurator rmq)
            rmq.SetQuorumQueue();
    });