问题标签 [cloudevents]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

apache-kafka - 如何处理模式?

我有一个基于 Spring-Boot 的小型原型,可以使用 Protobuf 将消息发布到 Kafka 集群。我正在使用融合序列化程序:

  • io.confluent.kafka.serializers.protobuf.KafkaProtobufSerializer
  • io.confluent.kafka.serializers.protobuf.KafkaProtobufDeserializer

我还从 Confluent(最新版本)运行 Schema Registry 来处理 Protobuf 模式。一切都按预期工作。

现在,我想介绍 Cloudevents 规范(https://github.com/cloudevents/spec),但我很难理解它如何与 Confluent Schema Registry 一起工作。

Cloudevents 有一个 sdk模块,可以将消息直接序列化到 Protobuf。消息的data部分是我的版本化有效负载应该去的地方,但是没有办法只为消息的一部分定义模式。为了更清楚:

一种解决方案是复制 Cloudevent protobuf架构,并在每个 protobuf 架构文件中简单地定义消息规范。这样做的缺点是我必须为每条新消息复制/粘贴 Cloudevents protobuf 模式。这将允许我在不使用任何 Cloudevent 库的情况下使用标准 Protobuf Kafka serde。有更好的解决方案吗?