我将 Masstransit dotnet core v6.3.1 与 RabbitMQ v3 一起使用。我的案例是从 api 网关向其他服务发送请求。服务由主题和网关使用每个请求使用不同的主题。我正在尝试将请求/响应与公共交通一起使用。但是 requestClient 将交换类型声明为扇出。我不能改变类型。我想对每个请求使用不同的 routingKey 和请求/响应。我怎样才能做到这一点?
我在网关中使用过:(startup.cs)
cfg.AddRequestClient<ISimpleRequest>();
(自定义控制器)
await client.GetResponse<ISimpleResponse>(new { Data="test request"});
我在其他服务(启动)中使用过:
cfg.ReceiveEndpoint("TestGateway", ep =>
{
ep.Consumer(() => new SimpleConsumer(context));
});
(自定义消费者)
await client.RespondAsync<ISimpleResponse>(new { Data="test response"});
我也尝试先在rabbitmq中声明交换。在我使用交换 Uri 从 clientFactory 创建请求之后。但是我遇到了一个错误,例如“ ...收到'扇出'但当前是'主题'。”