【问题标题】:kafka topic name change without changing consumerskafka主题名称更改而不更改消费者
【发布时间】:2019-04-18 05:41:45
【问题描述】:

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

【问题讨论】:

    标签: apache-kafka avro confluent-schema-registry


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 2017-01-28
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多