【问题标题】:The latest (version: Fishtown.SR2) spring-cloud-stream doesn't support kafka client version 2.1.0 or higher?最新(版本:Fishtown.SR2)spring-cloud-stream不支持kafka客户端2.1.0或更高版本?
【发布时间】:2019-05-21 06:01:04
【问题描述】:

我正在使用最新的 Greenwich.SR1,其中包括 spring-cloud-stream(版本:Fishtown.SR2)和本地启动 kafka 客户端版本:2.2.0 使用 kafka_2.12-2.2.0.jar

我想在 spring-cloud-stream 中使用最新的 kafka 客户端 2.1 或更高版本,因为它包含一些重要的错误修复。但是当我运行我的 spring 应用程序时,它的日志显示

INFO 37812 --- [main] o.a.kafka.common.utils.AppInfoParser : Kafka version : 2.0.1

如何在最新的 kafka 客户端中使用 spring-cloud-stream? 我想从 kafka 客户端的最新 StreamsConfig 中使用 ma​​x.task.idle.ms,但似乎最新的 spring-cloud-stream kafka 流绑定器没有 support kafka 客户端 2.1。 0 或更高版本?

【问题讨论】:

    标签: apache-kafka apache-kafka-streams spring-cloud-stream


    【解决方案1】:

    Spring 版本控制规则不允许我们在单点发布中升级到新版本的 kafka 客户端。由于 Fishtown 使用 Spring for Apache Kafka 2.2,它使用 2.0.x kafka-clients。

    Spring for Apache Kafka 的下一个版本将使用 2.2.0 客户端(或 2.3.0,如果届时可用),因此下一个版本的 binder 将基于较新的客户端。

    消息通道绑定器在 kafka-clients 被覆盖时工作,但不幸的是,由于某些内部 API 更改,流绑定器不起作用。

    【讨论】:

    • YMMV,但我刚刚测试了一个简单的应用程序,其中 kafka-clients 和 kafka-streams jar 被覆盖到 2.2.0 并且没有问题。
    • 我通过在 spring-cloud-stream pop.xml 文件中添加 kafka-clients 依赖版本 2.2.0 和 kafka-streams 版本 2.2.0 覆盖了 kafka-clients。现在在应用程序启动时,我可以看到:[main] o.a.kafka.common.utils.AppInfoParser:Kafka 版本:2.2.0。这是覆盖 kafka-clients 和 kafka-streams 依赖项的正确方法吗?这是否意味着现在我可以在我的 spring-cloud-stream 应用程序中使用 kafka-clients 和 kafka-streams 2.2.0 提供的所有新功能。谢谢
    • 是的;只要代理版本支持该功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多