Pub/Sub 架构是一项可选功能,可用于强制使用 Pub/Sub 消息中的 data 字段格式。
架构会在发布者和订阅者之间就消息的格式创建协定。Pub/Sub 会强制执行此格式。 架构通过为消息类型和权限创建集中授权机构,促进团队间的数据流使用。Pub/Sub 消息架构定义了消息中字段的名称和数据类型。
您可以创建架构并将其与主题相关联,以便为已发布的消息强制执行此架构。如果特定消息不符合架构,则无法发布该消息。您还可以为架构创建其他修订版本。
架构类型
您可以使用以下框架之一在 Pub/Sub 中创建架构:
创建架构后,您可以对架构或架构修订版本执行多项操作。例如,您可以删除架构或删除架构修订版本。
例如,以下架构定义了仓库的商品目录,首先以 Avro 格式定义,然后以协议缓冲区格式定义。
Apache Avro 格式
{
"type" : "record",
"name" : "Avro",
"fields" : [
{
"name" : "ProductName",
"type" : "string",
"default": ""
},
{
"name" : "SKU",
"type" : "int",
"default": 0
},
{
"name" : "InStock",
"type" : "boolean",
"default": false
}
]
}
协议缓冲区格式
syntax = "proto3";
message ProtocolBuffer {
string product_name = 1;
int32 SKU = 2;
bool in_stock = 3;
}
架构的配额和限制
架构具有以下限制:
架构定义字段的大小不得超过 50 KB。
一个项目最多可以有 10,000 个架构。
单个架构最多只能有 20 个修订版本。
如需了解与 Pub/Sub 相关的架构和限制,请参阅 Pub/Sub 配额和限制。