kafka主题名称更改而不更改使用者

问题描述 投票:0回答:1

我们计划从kafka主题名称中删除版本。目前,相关消息的模式版本构成主题名称的一部分。但是将来我们会有大量小的消息变体,我们不想创建太多的主题。但是这些主题已经有很多消费者。我们不希望所有这些主题都进行更改(仍应尝试使用版本号的主题消费)。怎么能实现这一目标?是否有任何工具(例如AVRO)可以帮助实现这一目标?有没有人遇到类似的问题。第二个问题 - 消费者如何区分具有相同主题的结构中的微小变化的消息。

apache-kafka avro confluent-schema-registry
1个回答
1
投票

如果我理解正确,我会建议:

  • 关于第一个问题:
pattern = Pattern.compile("topic_name_without_schema_version.*");
kafkaConsumer.subscribe(pattern, new ConsumerRebalanceListener());
  • 关于第二个问题:您希望实现什么样的差异化?如果您只想知道当前消息是否与最新的Avro Schema不兼容,您可以尝试转换当前消息并捕获异常(如果有),或者您可以根据当前消息生成Avro架构,检查两个模式的相等性
© www.soinside.com 2019 - 2024. All rights reserved.