【问题标题】:Apache Camel components' version compatibilityApache Camel 组件的版本兼容性
【发布时间】:2021-10-23 01:07:20
【问题描述】:

我发现选择与服务器版本不同的客户端版本是非常罕见的(例如在HBase client - server’s version compatibility 中)。

另一方面,我有一个关于 Camel 兼容性的答案,其中提到了 Camel-HBase jar,我可以通过降级找到客户端 jar 的合适版本(例如 https://mvnrepository.com/artifact/org.apache.camel/camel-hbase/3.1.0 用于旧 HBase版本)。但是这个答案也说这是一件坏事(Can Apache Camel integrate with an old HBase version?)。如果我没有升级 HBase 服务器的选项(因为它不是我的),我想知道解决方案是什么。为什么选择较低的 Camel 组件(如 Camel-HBase)版本不好?

否则是不可能的,因为它要求每一种集成技术都得到最大程度的升级。

【问题讨论】:

    标签: java apache-camel hbase spring-camel apache-camel-3


    【解决方案1】:

    抱歉,显然你提到的我的回答不够清楚。

    绝对可以使用较旧的 Camel 版本,其依赖项与您的特定 Hbase 客户端版本需求相匹配。

    但这个决定有一些缺点:

    • 无法升级您的 Camel 应用程序(版本锁定)
    • 您不能在具有更新版本的同一应用程序中使用另一个 Camel 组件,因为混合了 Camel 组件版本(例如,camel-core 3.9.0 和 camel- hbase 3.1.0) 导致很多问题

    这些观点的结果是,您可能必须在使用旧的“冻结”Camel 版本的 Camel 应用程序中“隔离”您的 Hbase 集成。

    “隔离”,因为一旦您想做其他需要更新 Camel 版本的事情,您就必须构建一个新应用程序,通过 API 与您的 hbase 集成进行通信。

    我希望这个答案对你更有意义。

    关于你的最后陈述

    否则是不可能的,因为它要求每一种集成技术都得到最大程度的升级。

    有很多技术可以提供更广泛的兼容性。 Kafka 或 ActiveMQ 等消息传递客户端与旧版本的服务器线路兼容。

    【讨论】:

    • 但实际上,在我每次更新 Camel 版本时,我都希望更新我所有的集成技术?例如,如果我与 6 个数据库集成,我是否应该在每次升级 Camel 时都升级所有这些数据库?
    • 不,因为 JDBC API 还是一样的,不管你使用什么 Camel 版本。但是对于客户端与旧服务器版本不兼容的技术,您的评论是正确的。因此,您必须在他们自己的 Camel 应用程序中隔离此类“遗留集成”。
    猜你喜欢
    • 1970-01-01
    • 2023-01-05
    • 2023-03-25
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多