跳到主要内容
英文版本为准

本页译自英文,由模型翻译。若与英文原文存在差异,以英文原文为准。

主题

Pub/Sub 主题把每条消息交给挂在它上面的每个订阅,同一订阅的订阅者分担这个订阅的消息。

发布者向一个主题发布;两个订阅各自收到每条消息,同一订阅的两个订阅者分担消息订阅 billing订阅 audit发布者主题 orders订阅者 1:消息 1 和 3订阅者 2:消息 2唯一的订阅者:消息 1、2、3订阅保留消息,直到消息得到确认或保留期届满,不论有没有订阅者
以文字阅读本图
  1. 订阅 billing: 订阅者 1: 消息 1 和 3; 订阅者 2: 消息 2
  2. 订阅 audit: 唯一的订阅者: 消息 1、2、3
  3. 发布者 → 主题 orders: 发布
  4. 主题 orders → 订阅 billing: 每条消息
  5. 主题 orders → 订阅 audit: 每条消息
  6. 订阅保留消息,直到消息得到确认 或保留期届满,不论有没有订阅者

发布者只指定一个主题,不指定别的。订阅是一种独立的资源,恰好挂在一个主题上。一个主题可以有多个订阅。

订阅收到的是它创建之后发布到其主题的消息。每个订阅都得到每条消息的一份副本,因此 billing 和 audit 绝不会拿走对方的消息。

同一订阅的订阅者分担它的消息:每个订阅者得到一部分,任意两个订阅者得到的部分互不重叠。给订阅增加订阅者,会分散它的负载。增加订阅,则多了一个读取全部消息的读者。

在 ruststream-gcp-pubsub 中,处理器通过 GooglePubSub 或直接用名称指定它读取的订阅,发布者指定它写入的主题。这一模型就是 Google 自己的模型(订阅概览、Pub/Sub 基础知识)。订阅者在处理消息期间如何持有它,见租约。