根据https://nats.io/documentation/concepts/nats-queueing/的说法
Synchronous queue subscribers must build in logic to process the message.
这是否意味着如果队列中有10条消息,只有一个订阅者得到第一条消息,并且在回复一些消息之后,第二条消息将去往另一个订阅者?
如果不是,有没有适合我上面提到的情况的消息传递软件或系统?
发布于 2018-09-11 02:02:28
突出显示的句子意味着支持异步订阅者的客户端在回调中异步处理消息,而让同步订阅者就地处理消息的客户端(或将它们传递给另一个goroutine/线程/等)。
not队列订阅(在NATS核心和NATS流中)将在队列订阅者之间随机扇出消息,而不是等待响应。如果您有10条消息发送到两个队列订阅者(A和B),则队列订阅者A可能处理消息1、3、4、6、9,而队列订阅者B将处理消息2、5、7、8、10。这两个订阅者处理消息的速率可能不同,因此对于队列消费者,NATS不保证传递顺序。
如果您需要串行处理多个队列订阅者之间的消息,您将需要某种协调-这可能是分布式事务协调器或分布式锁。
https://stackoverflow.com/questions/52183599
复制相似问题