Nats.io队列,同步行为

问题描述 投票:0回答:1

根据https://nats.io/documentation/concepts/nats-queueing/

Synchronous queue subscribers must build in logic to process the message.

是否意味着如果队列中有10条消息,只有一个用户获得第一条消息,并且在回复之后,第二条消息将转到另一个用户?

如果不是,是否有任何消息传递软件或系统可以适应我上面提到的情况?

messaging publish-subscribe nats.io
1个回答
0
投票

突出显示的句子意味着支持异步订阅者的客户端异步处理回调中的消息,并且具有同步订阅者的客户端将其处理到位(或将它们传递给另一个goroutine / thread / etc)。

NATS队列订阅(在NATS核心和NATS流中)将在队列订户之间随机扇出消息,而不是等待响应。如果有10个消息发送给两个队列订户(A和B),则队列订户A可能处理消息1,3,4,6,9,队列订户B将处理消息2,5,7,8,10。这些可能以不同的速率处理消息,因此对于队列消费者,NATS不保证传递顺序。

如果需要在多个队列订阅者之间串行处理消息,则需要某种协调 - 这可能是分布式事务协调器或分布式锁。

© www.soinside.com 2019 - 2024. All rights reserved.