在NServicebus 7中,您可以设置并发性,这意味着您可以决定您的软件可以并行处理队列中的消息数量。这可以在NserviceBus端点级别完成。
我对这个概念毫不怀疑:
例如:
。
发布于 2021-03-01 14:37:46
卫星是一种先进的功能,用于原始信息处理,而没有NServiceBus消息处理管道的所有好处。使用它们是不正常的--它们在实现消息传输时最常用。例如,RabbitMQ传输将卫星用于使端点实例可单独寻址的特性,因此在代理上有一个QueueName队列和一个QueueName-InstanceName队列,以便另一个端点可以执行context.Reply(),并让应答转到发送原始命令的特定服务器。无论如何,每个卫星都分别管理其并发性,因为它是一个更低级别的构造。
所以是的,通过主队列的并发性是针对端点实例的,而不是针对每种消息类型的,因为端点和队列之间存在1:1的关系,您不能按类型选择性地从队列中提取消息。
因此,端点是您的可伸缩性单元,既可以扩展(通过增加并发性),也可以扩展到out (通过在不同服务器上添加更多的端点实例)。
这意味着您应该小心在同一个端点中处理的消息类型。他们通常应该拥有相同的SLA。你不会想要一堆需要50毫秒才能处理的消息,在处理了20秒的过多信息之后就被搁置了。
有些人会把这个问题搞得极端化,每种消息类型都有一个端点。这种复杂程度通常是不必要的,但它确实为您提供了对每一种消息类型的可伸缩性的最终控制。
https://stackoverflow.com/questions/66390412
复制相似问题