【问题标题】:How Do I connect in two RabbitMQ servers using MassTransit如何使用 MassTransit 连接两个 RabbitMQ 服务器
【发布时间】:2021-09-17 13:48:13
【问题描述】:

如何打开两个使用 massTransit To RabbitMQ 服务器的连接?

今天我正在使用一个连接,但我需要在另一个服务器中创建更多消费者:

services.AddMassTransit(x =>
{ 
    //this consumer will get messages from one Exchange, and I need to create
    //another consumers from anothers Exchanges.
    x.AddConsumer<OptionExecutedConsumer>();
    
    x.UsingRabbitMq((context, cfg) =>
    {
        cfg.Host(rabbitMQConfig.Connection.Servers[0],
        rabbitMQConfig.Connection.Port,
        rabbitMQConfig.Connection.VirtualHost,
        h =>
        {
            h.Username(rabbitMQConfig.Connection.Username);
            h.Password(rabbitMQConfig.Connection.Password);
            h.UseCluster(c =>
            {
                rabbitMQConfig.Connection.Servers.ToList()
                    .ForEach(server => c.Node(server));
            });
        });
        cfg.ReceiveEndpoint(rabbitMQConfig.Consumer.OptionExerciseQueue, e =>
        {
            e.UseRetry(r =>
                r.Incremental(rabbitMQConfig.Consumer.RetryLimit,
                TimeSpan.FromSeconds(rabbitMQConfig.Consumer.InitialInterval),
                TimeSpan.FromSeconds(rabbitMQConfig.Consumer.IntervalIncrement)));
    
            e.Bind(rabbitMQConfig.Consumer.OptionExerciseExchange, x =>
            {
                e.ConcurrentMessageLimit = 1;
                e.DiscardFaultedMessages();
                e.ClearMessageDeserializers();
                e.UseRawJsonSerializer();
                e.ConfigureConsumer<OptionExecutedConsumer>(context);
            });
        });      
    });
});

如何使用此类创建新连接?有最佳做法吗?

【问题讨论】:

    标签: c# .net masstransit


    【解决方案1】:

    您需要设置两个单独的总线实例。这总是可能的,但对 DI 不太友好。目前,well-documented 的多总线功能可让您非常轻松地做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多