如何使用Kundera连接到Cassandra 4.x?

lsmd5eda  于 2023-05-06  发布在  Cassandra
关注(0)|答案(3)|浏览(242)

我们一直在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的任何其他替代方案

x7rlezfr

x7rlezfr1#

Thrift已经被弃用了很长一段时间,最终在4.0版本中被删除。对于Java应用程序,使用最新版本的DataStax Java-driver是安全的。除了Thrift之外,基于CQL的Java驱动程序确实有一个对象Map器,因此您可能不希望包含任何其他库来获得JPA支持。然而,Spring-Data相当流行,它还提供了到多个后端的JPA风格Map,包括最近的Apache Cassandra。

bfnvny8b

bfnvny8b2#

昆德拉似乎不再支持5年前的最后一次提交。它并没有随着Cassandra技术的发展而发展,正如Tibor所说,节俭的支持早已不复存在。

Datastax驱动提供了您所期望的对象Map:

如果您对Spring Data Cassandra感兴趣:

x6yk4ghg

x6yk4ghg3#

大约8年前,Thrift在Cassandra中被弃用,直到2011年(CASSANDRA-1703)才被CQL取代。基于Thrift API的驱动程序已经退役了很长时间,包括2015年Nate McCall的Hector和2016年Netflix的Astyanax
Cassandra 2.2在2015年停止使用Thrift(CASSANDRA-8358CASSANDRA-9319),Cassandra 4.0在2016年完全删除了Thrift(CASSANDRA-11115)。
如果你阅读Kundera的文档,他们在2014年添加了Cassandra Java驱动程序支持(Kundera v2.11),所以真的没有理由继续使用Thrift客户端。
要在Kundera中使用Java驱动程序,请将驱动程序的Maven坐标添加到项目中。例如:

<dependency>
    <groupId>com.impetus.kundera.client</groupId>
    <artifactId>kundera-cassandra-ds-driver</artifactId>
    <version>3.13</version>
</dependency>

不使用ThriftClientFactory,而是配置您的持久性单元以使用驱动程序:

<property name="kundera.client.lookup.class"             
        value="com.impetus.kundera.client.cassandra.dsdriver.DSClientFactory" />

Java驱动程序使您能够在Kundera中使用CQL进行CRUD操作。有关详细信息,请参见Cassandra Java driver support using Kundera
最后,我要重复一下其他人的建议。昆德拉库似乎没有积极维护,最后一个版本可以追溯到2018年6月。
我们建议您将应用程序迁移到使用Cassandra Java driver本机。干杯!

相关问题