使用同一个库

时间:2015-08-10 17:13:04

标签: java cassandra guava cql hector

我最近将我的Cassandra节点从版本1.0.11升级到版本2.1.8。 版本1.0.11使用的是Hector Java Driver,不再受支持,而对于v.2.1.8,我们使用的是Native CQL Driver。

当我为新版本添加了库时,我遇到了Guava库的严重问题:

  • Hector Driver - 与(遗留)guava-r09.jar一起使用。
  • 原生CQL驱动程序 - 适用于guava-18.0.jar。

所以,我试图删除旧的Guava jar(v.09)并将其更换为新的(v.18),但它不符合Hector,因为Hector几乎被弃用了虽然并且与任何新版本都不兼容。

另一方面,Native CQL驱动程序不能使用低于v.18的Guava版本。 当然,由于许多功能会互相覆盖,因此两者都会崩溃整个系统。

我一直在考虑的一些可能的解决方案是:

  1. 将我们的整个项目迁移到新的驱动程序 - 这是一个解决方案,但需要很长时间,因为我们有很多复杂的代码。
  2. 深入挖掘Hector类并手动更改它们以与v.18兼容 - 这是另一种解决方案,但这需要时间并且风险很大。此外,每个Guava更新我都需要进行修改,这可能需要很长时间。
  3. 两个并行应用程序?真的无法想到这个......
  4. 有没有人有其他更容易的建议?就像某个查询的某种选择性库版本和其他查询的不同版本一样?也许是某种Docker?或者可能是虚拟环境解决方案?

    提前致谢, 亚当。

0 个答案:

没有答案