我正在尝试编写一个系统,其中我们有一个队列来处理消息。问题是我想要有两个队列:一个用于开发环境,另一个用于生产环境。
Program.cs
builder.Services.AddMassTransit(c =>
{
c.UsingRabbitMq((context, configurator) =>
{
configurator.Host(builder.Configuration["EventBusSettings:HostAddress"]);
});
});
发布控制器
PublishAssetRequest publishAssetRequest = new(){
AssetId = asset.Id,
ApplicationId = createAssetRequest.ApplicationId
};
await _publishEndpoint.Publish(publishAssetRequest);
我知道如果我想指定我想在消费者中使用的队列是这样的:
消费者
busFactoryConfigurator.ReceiveEndpoint(**configuration["EventBusSettings:Queue"]** ?? string.Empty, c =>
{
c.ConfigureConsumer<BlockchainConsumer<PublishAssetRequest>>(context);
c.ConfigureConsumer<BlockchainConsumer<PublishAssetMetadataRequest>(context);
});
问题是我想和出版商做同样的事情。
我希望能够指定我想使用什么队列来发布(发送到队列),但我没有找到任何方法来做到这一点。
多谢了。
1条答案
按热度按时间wtzytmuj1#
使用RabbitMQ,我建议为每个环境创建单独的虚拟主机(而不是与多个环境共享单个虚拟主机)。使用CloudAMQP很容易做到,甚至只需运行自己的RabbitMQ代理。