是否可以直接从启动连接到多个大众运输队列?

问题描述

services.AddMasstransit(config =>
        {
            config.AddConsumer<Consumer1>();
            config.UsingRabbitMq((ctx,cfg) => {
                cfg.Host("amqp://guest:guest@localhost:5672");

            
                cfg.ReceiveEndpoint("firstqueue",c => {
                    c.ConfigureConsumer<Consumer1>(ctx);
                });


            
            });

我需要从一个队列中获取一些请求,然后将它们发布到另一个队列。这就是我连接到其中一个的方式,我尝试直接添加它但我没有成功,因为我不能有 3 个参数

解决方法

发布消息时不需要连接到任何队列。您只需使用 IPublishEndpoint 作为 described in the docs 发布到地址。您发布到队列,这就是它被称为发布的原因。如果您需要发送,请使用 ISendEndpoint 实例。 Send 方法需要一个地址。

只有在您需要消费消息时,您才连接到队列(和交换)。

对于 MassTransit,如果您在消费者内部发送或发布,建议使用 ConsumeContext。您可以使用 context.Publishcontext.GetSendEndpoint