我在 .net core 7 项目中使用 Masstransit.ActiveMq nuget 包与 Masstransit 和 Artemis 进行斗争。
问题在于Artemis服务器的设置和限制使得我们的系统只能在特定地址下进行操作。在这个地址(rgs)下,我们拥有完全的访问权限。
但是使用 Masstransit/Artemis 拓扑,它会创建队列并处理 Virtual.SomeOrderReceived(下图)
我们如何配置才能将这些消费者队列配置在地址 rgs 下?
我很清楚发布订阅模式和打破拓扑约定可能会导致混乱的配置,从而可能导致使用过滤器等。但我在 Stackoverflow 的最后一个问题当我的 API 配置我的消费者时,为什么 MassTransit 创建两个地址和队列?是“宽”,我尝试将其缩小到这个特定问题。
非常感谢我们能得到的所有帮助。我们是一个大型团队,在一个项目中工作,我们主要使用 Azure 服务总线。使用 Masstransit 查找 Artemis 的文档或示例一直具有挑战性。
如果您想要一个队列,请配置一个接收端点并将所有消费者放入其中。
https://masstransit.io/documentation/configuration#receive-endpoints
services.AddMassTransit(x =>
{
x.AddConsumer<SubmitOrderConsumer>();
x.UsingActiveMq((context, cfg) =>
{
// ...
cfg.ReceiveEndpoint("rgs", e =>
{
e.ConfigureConsumeTopology = false;
e.ConfigureConsumer<ConsumerA>(context);
e.ConfigureConsumer<ConsumerB>(context);
});
});
});