私は、RabbitMQ v3 で Masstransit dotnet コア v6.3.1 を使用しています。私の場合は、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からのリクエストを作成した後。しかし、「 ... 'ファンアウト' を受け取りましたが、現在は 'トピック' です。」 のようなエラーが発生しました。