我们一直在Java项目中使用Kundera库来连接Cassandra数据库3.11.11。我们一直使用的库或jar文件是com.impetus.kundera.client.kundera-cassandra.3.13.jar最近,我们项目中的DBA团队将DB迁移到Cassandra 4.0.7版本。迁移后,我们无法连接到数据库。我们使用的是thrift客户机工厂com. inspiration.client.cassandra.thrift.ThriftClientFactory,在persistence.xml中的端口9061。
我们还在文档中读到Kundera不支持Cassandra 4.x。https://github.com/Impetus/kundera/wiki/Datastores-Supported
请帮助我们找出这里的问题。请建议我们可以使用Java应用程序连接Cassandra 4.x的任何其他替代方案
3条答案
按热度按时间x7rlezfr1#
Thrift已经被弃用了很长一段时间,最终在4.0版本中被删除。对于Java应用程序,使用最新版本的DataStax Java-driver是安全的。除了Thrift之外,基于CQL的Java驱动程序确实有一个对象Map器,因此您可能不希望包含任何其他库来获得JPA支持。然而,Spring-Data相当流行,它还提供了到多个后端的JPA风格Map,包括最近的Apache Cassandra。
bfnvny8b2#
昆德拉似乎不再支持5年前的最后一次提交。它并没有随着Cassandra技术的发展而发展,正如Tibor所说,节俭的支持早已不复存在。
Datastax驱动提供了您所期望的对象Map:
如果您对Spring Data Cassandra感兴趣:
x6yk4ghg3#
大约8年前,Thrift在Cassandra中被弃用,直到2011年(CASSANDRA-1703)才被CQL取代。基于Thrift API的驱动程序已经退役了很长时间,包括2015年Nate McCall的Hector和2016年Netflix的Astyanax。
Cassandra 2.2在2015年停止使用Thrift(CASSANDRA-8358,CASSANDRA-9319),Cassandra 4.0在2016年完全删除了Thrift(CASSANDRA-11115)。
如果你阅读Kundera的文档,他们在2014年添加了Cassandra Java驱动程序支持(Kundera v2.11),所以真的没有理由继续使用Thrift客户端。
要在Kundera中使用Java驱动程序,请将驱动程序的Maven坐标添加到项目中。例如:
不使用
ThriftClientFactory
,而是配置您的持久性单元以使用驱动程序:Java驱动程序使您能够在Kundera中使用CQL进行CRUD操作。有关详细信息,请参见Cassandra Java driver support using Kundera。
最后,我要重复一下其他人的建议。昆德拉库似乎没有积极维护,最后一个版本可以追溯到2018年6月。
我们建议您将应用程序迁移到使用Cassandra Java driver本机。干杯!