我以订阅者可以理解的格式将消息发布到kafka主题(outputTopic)。我现在希望以一种可以破坏现有主题使用者的方式修改这些消息的格式。
例如,我发布了以json格式序列化的对象,但是需要更改对象,因此需要更改架构。
管理此类更改的最佳方法是什么?我是否应该更改生产者,以便将其发布到新主题(outputTopic2)?有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
根据我的一种清洁方法是使用Schema registry / Apache Avro。根据您的使用方式,它将帮助您确保向后/向前兼容。
答案 1 :(得分:0)
除非让消费者同时使用旧的和新的架构版本,否则Avro架构将无法解决该问题-这绝对是过大了,然后首先完全消除了对Avro的需求。
相反,请保持生产者的状态不变。部署从相同数据源读取的更新版本,并以新的更新格式将数据发布到新主题。
允许消费者从旧版本迁移到新版本,然后最终终止旧版本。