架构概览

Pub/Sub 架构是一项可选功能,可用于强制要求 Pub/Sub 消息中的数据字段遵循一定的格式。

架构可在发布方和订阅方之间创建有关消息格式的合同。Pub/Sub 会强制执行此格式。借助架构通过为消息类型和权限创建中央授权,来促进内部团队在组织内使用数据流。Pub/Sub 消息架构定义消息中字段的名称和数据类型。

您可以创建一个架构并将其与某个主题相关联,以强制要求发布的消息遵循此架构。如果特定消息不符合架构,系统将无法发布该消息。您还可以为架构创建其他修订版本。

架构类型

您可以使用以下框架之一在 Pub/Sub 中创建架构:

例如,以下架构定义了仓库的商品目录,先是 Avro 格式,然后是 Protocol Buffer 格式。

Apache Avro 格式

{  "type" : "record",  "name" : "Avro",  "fields" : [    {      "name" : "ProductName",      "type" : "string",      "default": ""    },    {      "name" : "SKU",      "type" : "int",      "default": 0    },    {      "name" : "InStock",      "type" : "boolean",      "default": false    }  ] } 

Protocol Buffer 格式

syntax = "proto3"; message ProtocolBuffer {   string product_name = 1;   int32 SKU = 2;   bool in_stock = 3; } 

有关架构的重要信息

以下是有关创建和管理 Pub/Sub 架构的一些重要信息。

  • 为了让架构与 Pub/Sub 配合使用,您必须仅定义一个顶级类型。不支持引用其他类型的导入语句。

  • 您可以将同一架构与多个主题相关联。

  • 您可以手动测试消息是否能通过架构验证。

  • 请勿在架构字段名称中包含敏感信息,例如个人身份信息 (PII) 或安全数据。

架构的配额和限制

架构存在以下限制:

  • 架构定义字段的大小不得超过 300 KB。

  • 一个项目最多可以有 1 万个架构。

  • 单个架构的修订版本不能超过 20 个。

    如需了解与 Pub/Sub 相关的架构和限制,请参阅 Pub/Sub 配额和限制

后续步骤