Google Pub/Sub 是队列还是主题?
Does Google Pub/Sub queue or topic?
我对 JMS 很熟悉,对 Google Pub/Sub 是新手。
在 JMS 中有 2 个选项:
- 队列: 只有一个消费者可以接受消息。
- 主题:每个消费者接受来自主题
的每条消息
我相信 Google Pub/Sub 应该支持这样的东西,但是快速谷歌搜索并没有帮助我回答这个问题。
请指出相应的文档部分。
如名称"Pub/Sub" 所示,Google Pub/Sub 支持对应于JMS 主题的publish/subscribes 语义。它不支持与 JMS 队列对应的点对点语义,至少不直接支持。
您可以在 the documentation 中查看语义概述。 "Publisher-subscriber relationships" 部分可能会有帮助。需要明确的是,本文档确实在两个地方使用了 queue 这个词:
- 在 "Pub/Sub message flow" 部分:"When a message is acknowledged by the subscriber, it is removed from the subscription's message queue."
- 在 "Common use cases" 部分:"For example, a large queue of tasks can be efficiently distributed among multiple workers, such as Google Compute Engine instances."
术语 queue 此处用于指代该主题的实际 subscription(即为订阅者放置消息的位置)消费)。此外,architectural overview 包括此图表:
此图演示了多个订阅者如何从同一订阅接收消息(例如,用于平衡工作负载)。这类似于 "shared subscription" 功能 added for topics in JMS 2.
我一直在寻找这个问题的答案,我找到了描述队列而不是主题行为的文档:
https://cloud.google.com/pubsub/docs/subscriber
While a message is outstanding to a subscriber, however, Pub/Sub tries
not to deliver it to any other subscriber on the same subscription.
所以我的理解是,如果你想
一个主题行为(一对多):你创建了很多订阅,每个订阅都会得到一份消息
队列行为:您创建一个订阅
然后在每个订阅上您可以运行一个或多个订阅者进行负载平衡,每条消息只传递给一个订阅者
我没有看到订阅者之间的分布情况。可能是循环赛。
我对 JMS 很熟悉,对 Google Pub/Sub 是新手。
在 JMS 中有 2 个选项:
- 队列: 只有一个消费者可以接受消息。
- 主题:每个消费者接受来自主题 的每条消息
我相信 Google Pub/Sub 应该支持这样的东西,但是快速谷歌搜索并没有帮助我回答这个问题。
请指出相应的文档部分。
如名称"Pub/Sub" 所示,Google Pub/Sub 支持对应于JMS 主题的publish/subscribes 语义。它不支持与 JMS 队列对应的点对点语义,至少不直接支持。
您可以在 the documentation 中查看语义概述。 "Publisher-subscriber relationships" 部分可能会有帮助。需要明确的是,本文档确实在两个地方使用了 queue 这个词:
- 在 "Pub/Sub message flow" 部分:"When a message is acknowledged by the subscriber, it is removed from the subscription's message queue."
- 在 "Common use cases" 部分:"For example, a large queue of tasks can be efficiently distributed among multiple workers, such as Google Compute Engine instances."
术语 queue 此处用于指代该主题的实际 subscription(即为订阅者放置消息的位置)消费)。此外,architectural overview 包括此图表:
我一直在寻找这个问题的答案,我找到了描述队列而不是主题行为的文档:
https://cloud.google.com/pubsub/docs/subscriber
While a message is outstanding to a subscriber, however, Pub/Sub tries not to deliver it to any other subscriber on the same subscription.
所以我的理解是,如果你想
一个主题行为(一对多):你创建了很多订阅,每个订阅都会得到一份消息
队列行为:您创建一个订阅
然后在每个订阅上您可以运行一个或多个订阅者进行负载平衡,每条消息只传递给一个订阅者
我没有看到订阅者之间的分布情况。可能是循环赛。