发布消息概览

本文档简要介绍了发布消息。

发布消息的工作流程

为了通过 Pub/Sub 发布消息,发布者应用需要创建消息并将消息发送到主题。

  1. 创建一条包含您的数据的消息。
  2. 选择任意可选的发布属性。
  3. 向 Pub/Sub 服务器发送请求,将消息发布到指定主题。
  4. Pub/Sub 服务接收消息并按如下方式处理它:

    • 系统会存储消息以供分发。

    • 该消息会复制到多个可用区中,以实现耐用性和高可用性。

    • Pub/Sub 会识别具有与消息主题匹配的订阅的订阅者,并向每个订阅者传送消息的副本。

Pub/Sub 为现有订阅者提供至少一次消息传送和尽力排序功能。

如需简要了解 Pub/Sub 系统,请参阅 Pub/Sub 服务概览

如需了解 Pub/Sub 的工作原理,请参阅 Pub/Sub 的架构概览

主题简介

Pub/Sub 主题是代表消息 Feed 的命名资源。当发布者发送消息时,消息将定位特定主题。Pub/Sub 服务使用此主题名称将消息路由到附加到该主题的所有订阅。如果订阅有多个订阅者,则只有订阅中的一个订阅者会收到消息。

发布商不必知道有多少订阅者。它们专注于该主题,确保在消息发送和消息接收之间分离关注点。

主题中的数据复制

Pub/Sub 主题使用三个区域来存储数据。该服务支持同步复制到至少两个区域,并尽最大努力复制到其他第三个区域。Pub/Sub 复制功能仅在一个区域内。

主题的属性

创建或更新主题时,您可以指定主题属性

消息简介

Pub/Sub 消息是通过服务移动的数据。

消息由包含消息数据和元数据的字段组成。必须在消息中指定以下其中一项。

  • 消息数据:这是消息的核心内容,可以是任何文本或二进制数据。它表示您要在发布者和订阅者之间传达的实际信息。如果您直接使用 REST API,则消息数据必须采用 base64 编码。 请参阅发布消息部分中 REST 标签页中的示例。

  • 排序键:这是一个标识符,表示必须为其排序消息的实体。具有相同排序键的消息应按发布顺序将其传送给订阅者。只有在您希望按顺序传送消息时,才需要排序键。如需详细了解如何对键进行排序,请参阅对消息进行排序

  • 属性:这些是可选键值对,提供有关消息的其他上下文和信息。可用于路由、过滤或丰富消息内容。例如,您可以添加时间戳或交易 ID 等属性。如需详细了解发布消息时使用的特性,请参阅使用特性发布消息

Pub/Sub 服务将以下字段添加到消息中:

  • 主题专属的消息 ID
  • Pub/Sub 服务接收消息的时间的时间戳

例如,以下是采用 JSON 格式的消息格式

{
  "data": "This is the core message content.",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
    "orderingKey": "12345"
}

后续步骤