MassTransit中ASP.NET Core应用专属消息消费的方案问询
问题解答
可以通过设置KebabCaseEndpointNameFormatter的前缀实现你要的效果,具体原理和注意事项如下:
- 当给应用A配置
prefix: "ApplicationA"、应用B配置prefix: "ApplicationB"后,两个应用的消费者队列名称会带上各自的前缀。比如原本的order-created-queue会变成application-a-order-created-queue(A应用)和application-b-order-created-queue(B应用),两个队列完全独立。 - 只要保持两个应用各自使用对应的前缀配置,应用A发布消息时,MassTransit会根据自身配置的格式化规则生成目标队列地址,消息只会发送到带
ApplicationA前缀的专属队列,只有A的消费者会监听这个队列,B的消费者因为监听的是自身前缀的队列,不会收到A发布的消息。
需要注意的是,要确保两个应用的KebabCaseEndpointNameFormatter配置严格对应各自的前缀,避免因配置失误导致队列名称重叠,引发交叉消费的问题。
内容的提问来源于stack exchange,提问作者TimeMan
相关产品推荐
相关产品推荐

