是否可以像 Kafka 中那样使用 AVRO 为 Google Pub/Sub 主题定义模式?

Is it possible to define a schema for Google Pub/Sub topics like in Kafka with AVRO?

据我所知,我们可以在Kafka上定义AVRO schema,用这个schema定义的topic只会接受与该schema匹配的数据。在接受到队列之前验证数据结构非常有用。

GooglePub/Sub有没有类似的东西?

Kafka 本身不验证模式,因此除了一对字节数组和一些元数据外,主题本身没有模式。序列化程序是生产客户端的一部分,它在数据到达主题之前执行验证。同样在 PubSub 中,在一天结束时,它只是 storing/sending byte[] 数据。

因此,理论上,在通过 PubSub 移动的数据的两端使用类似于 Confluent Avro Schema Registry 的东西是完全可行的。 Google 不提供这样的功能,AFAIK,因此您需要重新创建可以执行 Avro 兼容性检查的服务,并在该服务的客户端周围绑定一个 PubSub 序列化+生产者客户端。例如,您可以 运行 注册表本身作为 GKE 中的容器开始。

可能想看看 Avro message for Google Cloud Pub-Sub?

是的,您可以使用模式来验证 Google 云 Pub/Sub 主题和消息。

查看文档 here。支持 AVRO 和 Protobuf。