Pub/Sub 架构是一项可选功能,可用于强制要求 Pub/Sub 消息中的数据字段遵循一定的格式。
架构可在发布方和订阅方之间创建有关消息格式的合同。Pub/Sub 强制执行此格式。 架构有助于团队间使用 Google Cloud 中的数据流 从而为消息类型和 权限。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 配合使用,您必须仅定义一个顶级类型。不支持引用其他类型的导入语句。
您可以将同一架构与多个主题相关联。
您可以手动测试消息是否能通过架构验证。
架构的配额和限制
架构具有以下限制:
架构定义字段的大小不得超过 300 KB。
一个项目最多可以有 1 万个架构。
单个架构的修订版本不能超过 20 个。
如需了解与 Pub/Sub 相关的架构和限制, 请参阅 Pub/Sub 配额和限制。