0

我发现选择与服务器版本不同的客户端版本是非常罕见的(例如在HBase 客户端 - 服务器的版本兼容性中)。

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

否则就不可能工作,因为它将要求每项集成技术都得到最大程度的升级。

4

1 回答 1

2

对不起,显然我的回答你提到的不够清楚。

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

但这个决定有一些缺点:

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

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

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

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

关于你的最后陈述

否则就不可能工作,因为它将要求每项集成技术都得到最大程度的升级。

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

于 2021-08-23T07:00:21.170 回答