首页 > 解决方案 > Schema Registry VS 不同的主题处理

问题描述

处理违反合同变更的缺点是什么,这可能会对同一管道上的一些producer, topic, consumer tuple消费者产生不利影响[即],通过topic完全不同的方式?或者使用flattened包含旧/新字段的对象结构?我们正在使用Spring-Boot.

在要进行更改的情况下,与 using 相比,我们为什么不这样做Schema Registry

标签: apache-kafkaavroconfluent-schema-registry

解决方案


好吧,默认情况下,Schema Registry 强制执行 Backwards Schema Evolution,因此在您将主题配置明确设置为根本不执行兼容性检查之前,不会有真正破坏性的模式更改。


如果您绝对需要破坏模式,您可以删除注册表中的主题(但这不会删除主题中该数据的现有 Avro ID)

如果您展平数据,我看不出这与 CSV 有什么区别...在消息的顶层提供所有字段并不会改变您可能需要删除或添加稍后需要解析的字段的事实.

如果您确实需要, Schema Registry可以在单个主题中使用不同的类型。


推荐阅读