.net core 在masstransit中使用带有请求/响应的主题

.net core 在masstransit中使用带有请求/响应的主题,.net-core,rabbitmq,exchange-server,masstransit,request-response,.net Core,Rabbitmq,Exchange Server,Masstransit,Request Response,我正在使用Masstransit dotnet core v6.3.1和RabbitMQ v3。我的案例是从api网关向其他服务发送请求。服务按主题和网关使用,每个请求使用不同的主题。我正在尝试将请求/响应用于masstransit。但是requestClient将呼气类型声明为扇出。我不能改变类型。我想对每个请求和请求/响应使用不同的路由密钥。我该怎么做 我在gateway中使用过: (startup.cs) (定制消费者) wait client.respondsync(新的{Data=“t

我正在使用Masstransit dotnet core v6.3.1和RabbitMQ v3。我的案例是从api网关向其他服务发送请求。服务按主题和网关使用,每个请求使用不同的主题。我正在尝试将请求/响应用于masstransit。但是requestClient将呼气类型声明为扇出。我不能改变类型。我想对每个请求和请求/响应使用不同的路由密钥。我该怎么做

我在gateway中使用过: (startup.cs)

(定制消费者)

wait client.respondsync(新的{Data=“test response”});
我还尝试先在rabbitmq中声明exchange。在我使用exchange Uri从clientFactory创建请求之后。但是我有一个错误,比如“…接收到'fanout',但当前是'topic'。”

有一个关于使用直接交换的示例,topic交换类似,但支持通配符语义。我建议查看一下,以获得有关如何使用MassTransit配置RabbitMQ拓扑的更多详细信息


还有关于如何使用exchange类型设置路由密钥的内容。

我再次查看了文档,并使用了类似于您的示例direct的主题拓扑。但我认为这不是我的解决方案,我的问题仍然存在于多线程中。我迫不及待地想在发布消息后得到回复。有没有办法在拓扑中使用requestClient?谢谢你的帮助。
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"});