【问题标题】:Failed to create topics","exception":"\norg.apache.kafka.common.errors.UnsupportedVersionException创建主题失败","异常":"\norg.apache.kafka.common.errors.UnsupportedVersionException
【发布时间】:2021-08-03 09:12:07
【问题描述】:
{
   "mdc":{
      
   },
   "timestamp":"2021-05-11 11:48:04.055",
   "level":"ERROR",
   "logger":"org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner",
   "message":"Failed to create topics",
   "exception":"\"\norg.apache.kafka.common.errors.UnsupportedVersionException: Creating topics with default partitions/replication factor are only supported in CreateTopicRequest version 4+. The following topics need values for partitions and replicas:"

当我收到此错误时,请建议需要进行哪些更改。

【问题讨论】:

    标签: java spring-boot apache-kafka spring-cloud-stream spring-cloud-stream-binder-kafka


    【解决方案1】:

    我看到你是新来的。对于此类问题,您应该始终包含版本信息和完整堆栈跟踪。

    将您的代理升级到 >= 2.4 或设置 binder 复制因子属性。

    https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/commit/4161f875ede0446ab1d485730c51e6a2c5baa37a

    • 将默认复制因子更改为 -1

    Binder 现在使用默认值 -1 表示复制因子 经纪人使用默认值。使用 Kafka 代理的 2.4 岁以上的用户, 需要将此设置为以前在活页夹中使用的默认值 1。

    在任何一种情况下,如果存在要求复制因子 > 1 的管理策略, 那么必须使用该值。

    【讨论】:

    • 使用 Kafka 版本 2.6.0 但仍然遇到此问题
    • 那是客户端版本;经纪人需要是 2.4 或更高版本;将 binder 属性设置为所需的复制因子。
    • 感谢加里,将 binder 属性添加到复制因子“1”它可以工作......但之前我们当时使用的是 spring-cloud-stream-binder-kafka.version "3.0.7"没有出现问题,目前我们使用的是“3.1.2”并且出现了问题。是因为复制因子从“1”变为“-1”吗?所以,我们需要显式添加复制因子属性。
    • 是的,这是 Kafka Brokers 2.4 中添加的新功能;用户抱怨 SCSt 覆盖了这种行为,并迫使他们在这两个地方进行配置。为了满足这些用户,SCSt 3.1 将其默认值更改为 -1,以便代理配置获胜。正如文档所述,这意味着拥有旧代理的用户必须将其更改为旧默认值。进步的代价。
    【解决方案2】:

    用非负值覆盖默认复制因子 (-1) 解决了我的问题。

    spring.cloud.stream.kafka.binder.replication-factor=1
    

    对于application.yaml 文件使用:

    spring.cloud.stream.kafka.binder.replicationFactor: 1
    

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 2015-01-14
      • 2022-06-14
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多