0
地下3.5, 的RabbitMQ并发限制在MassTransit(C#)
我有上队列的数目侦听总线连接服务。
- Q1
- Q2
- Q3
- Q4 等
所有队列被接受相同的消息类型,所有这些都使用竞争消费者模式,其中有多个监听这些相同队列的不同机器上的服务。
什么我后设置的所有这些队列并发限制在一起,每一个过程。
我有一个有限的资源(可用的许可证的数量),以及需要限制并发请求每台机器可用许可证的数量。
所以机器A可能有4个,B机可以有10个,等等
我不想机器A从所有这些队列消耗任何消息,如果我已经有4名消费者跨越所有队列处理消息,它如果他们有可用的资源,应该让其他人(机器B,C等)使用它。
我的问题是,使用
sbc.UseConcurrencyLimit(4)
内
var bus = MassTransit.Bus.Factory.CreateUsingRabbitMq
是设置每个队列并发限制,所以如果我有他们的4,它们都相加。
我需要的是所有的队列来累计工作到并发性的限制,但不能超过它。
是否有MassTransit一个内置的方式来实现这一目标?