【发布时间】:2020-05-19 12:31:39
【问题描述】:
我正在使用 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 创建请求之后。但是我有一个错误,比如“...received 'fanout' but current is 'topic'。”
【问题讨论】:
标签: .net-core rabbitmq exchange-server masstransit request-response