如何处理内部kafka-streams主题的avro模式?

jhdbpxl9  于 5个月前  发布在  Apache
关注(0)|答案(2)|浏览(68)

我们为我们的Kafka主题使用Avro方案,它代表一个“公共”接口。当这样的主题现在在Kafka-Streams应用程序中使用并调用有状态操作时,相同的模式会自动再次注册一个内部名称。
处理这种情况的常用方法是什么?除了我的应用程序之外,这些主题和状态存储永远不会被其他任何人使用,所以我不认为将该模式发布到注册中心有什么意义。有没有一种方法可以只使用一些本地可用的模式,或者至少不为每个内部主题多次发布模式?

7uhlpewt

7uhlpewt1#

不再为每个内部主题多次发布架构
您可以为拓扑的每一步修改Serde,但这样就不必要地在不同的数据格式之间来回封送数据(一个有注册表ID,一个没有)。这最终会降低处理速度。当您使用AvroSerde + SpecificRecord子类时,每一个模式都已经是本地的.
您的注册服务器主题列表不是公共API的一部分。它是私有的。

ix0qys7i

ix0qys7i2#

我认为最好的解决方案是通过设置配置参数auto.register.schemas=false来禁用自动模式注册,并使用SchemaRegistry。

PS:客户端需要设置auto.register.schemas=false

参见https://docs.confluent.io/platform/current/schema-registry/security/index.html

相关问题