【发布时间】:2020-04-08 17:56:19
【问题描述】:
我熟悉 JMS 和 Google Pub/Sub 新手。
在 JMS 中有 2 个选项:
- 队列:只有一个消费者可以接受消息。
- 主题:每个消费者都接受来自主题的每条消息
我相信 Google Pub/Sub 应该支持这样的东西,但是快速谷歌搜索并没有帮助我回答这个问题。
请指出相应的文档部分。
【问题讨论】:
标签: jms google-cloud-pubsub messagebroker
我熟悉 JMS 和 Google Pub/Sub 新手。
在 JMS 中有 2 个选项:
我相信 Google Pub/Sub 应该支持这样的东西,但是快速谷歌搜索并没有帮助我回答这个问题。
请指出相应的文档部分。
【问题讨论】:
标签: jms google-cloud-pubsub messagebroker
正如名称“Pub/Sub”所示,Google Pub/Sub 支持与 JMS 主题相对应的发布/订阅语义。它不支持对应于 JMS 队列的点对点语义,至少不直接支持。
您可以在the documentation 中查看语义概览。 “发布者-订阅者关系”部分可能会有所帮助。需要明确的是,本文档确实在两个地方使用了 queue 这个词:
这里的术语 queue 用于指代主题上的实际订阅(即放置消息以供订阅者使用的位置)。此外,architectural overview 包括此图: 此图演示了多个订阅者如何从同一订阅接收消息(例如,用于平衡工作负载)。这类似于“共享订阅”功能added for topics in JMS 2。
【讨论】:
我一直在寻找这个问题的答案,我发现这个文档描述了队列的行为而不是主题:
https://cloud.google.com/pubsub/docs/subscriber
但是,当订阅者未收到消息时,Pub/Sub 会尝试 不要将其交付给同一订阅中的任何其他订阅者。
所以我的理解是,如果你愿意
主题行为(一对多):您创建多个订阅与一个订阅者,每个订阅者都会收到一条消息
一种具有跨订阅者负载平衡的队列行为:您创建一个包含多个订阅者的订阅。
我没有看到订阅的订阅者之间的分布情况。很可能是循环赛。
【讨论】: