我正在将Masstransit dotnet核心v6.3.1与RabbitMQ v3结合使用。我的情况是从api网关向其他服务发送请求。服务按主题使用,并且网关对每个请求使用不同的主题。我正在尝试将请求/响应与masstransit一起使用。但是requestClient声明了exhange类型为扇出。而且我无法更改类型。我想对带有请求/响应的每个请求使用不同的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中声明交换。在我从clientFactory与Exchange Uri创建请求之后。但是我遇到了类似“ ...收到'扇出'但当前是'主题'的错误。”
[有关使用直接交换的示例,主题交换类似,但支持通配符语义。我建议对其进行审查,以获取有关如何使用MassTransit通过RabbitMQ配置拓扑的更多详细信息。
关于如何设置交换类型的路由密钥,也有documentation。>