假设我们有发布者的服务器A和消费者的服务器B和C。我们还有5个不同的主题: foo1,foo2,...foo5。我们总是希望只向一个消费者发送一条消息,并且只接收一个响应。
因此,我们在发布者端使用来自队列的requestOne函数和带有{ JS SDK:"default"}选项的subscribe函数。因此,服务器B和C都为每个主题订阅了一次。但是每次他们订阅时,他们使用名为"default“的队列,以防止多个消费者收到docs中提到的相同消息。
所以问题是:这个名为"default“的队列会在所有主题之间共享吗?或者每个主题将具有其自己的名为"default“的队列,并且该队列仅在特定主题的订阅者之间共享。
例如: producer为每个主题生成10条消息2。我们是同时处理10条消息,还是只处理2条消息,因为所有订阅都共享名称为"default“的相同队列?
发布于 2018-09-29 04:18:48
您可以根据指定的队列名称和主题形成一个队列组。因此"foo“队列组不同于"bar”上的队列组。
也就是说,使用通配符,您可以将多个主题作为同一队列组的一部分。也就是说,监听"foo.*“的组"bar”的2个成员将分割对"foo.bar“、"foo.baz”等上发送的消息的处理。
发布于 2018-10-25 17:14:54
不同主题中的相同队列名称是分开的。
您可以使用以下链接中的示例对其进行测试。https://nats.io/documentation/additional_documentation/nats-queueing/
启动nats服务器
gnatsd
子subject1
运行nats-qsub.go subject1默认
..。
子subject2
运行nats-qsub.go subject2默认
..。
pub subject1&2
运行nats-pub.go subject1 "message“
..。
运行nats-pub.go subject2 "message“
..。
https://stackoverflow.com/questions/52212281
复制相似问题