我最近开始使用Cassandra数据库。现在,我正在评估Cassandra client我们应该前进的方向。
我看到过很多关于使用哪个客户端作为Cassandra的文章,但没有一个有明确的答案。
我的团队已要求我对此进行一些研究,并pros and cons针对Cassandra Client API’sJava中的每个问题提出一些建议。
正如我提到的那样,我最近参与其中的Cassandra原因还不是很清楚,为什么某些人选择Pelops
client,为什么某些人与Astyanax其他客户一起去。
我了解每个Cassandra客户端的简要信息,这意味着我能够完成这项工作,并开始对Cassandra数据库进行读写。
以下是我到目前为止的信息。
卡桑德拉APIS
Hector(可用于生产环境)
最稳定的Java API,已准备就绪。
Astyanax(Up and Comer)
Netflix提供的干净Java API。它没有像Hector那样广泛使用,但是很可靠。
__
兼容 Kundera(NoSQL ORM) JPA,当您想通过对象与Cassandra交互时,这非常方便。
这会在某种程度上限制您,因为您将无法获得动态数量的列/名称等。但是,它的确允许您通过ORM进行移植,或将存储集中到Cassandra上以用于更多传统用途。
Pelops
我只简单地使用过Pelops。这是直接的API,但似乎没有背后的动力。
PlayORM(没有限制的ORM?)
我刚刚听说过。似乎正在通过引入JQL来解决传统的基于JPA的ORM与NoSQL之间的阻抗不匹配的问题。看起来很有希望。
节俭(避免我!)
这是“低级” API。
以下是我们决定的重点Cassandra Client-
第一要务是:低延迟开销,Asynch API和生产环境的可靠性/稳定性。
(例如,可以在包装客户端的DAL中使用更加用户友好的API)。
连接池和分区意识是其他一些不错的功能。
能够检测添加的任何新节点。
以及良好的支持(如以下教务长所指出的)
有人可以对此提供一些想法吗?对于每个Cassandra Client客户的利弊,以及可以满足我的要求的客户也将有很大的帮助。
我相信,Astyanax client or New Datastax client that uses Binary
protocol到目前为止,主要是我将围绕我的研究结果进行讨论。但是没有足够的信息来支持我的研究并将其呈现给我的团队。
Astyanax客户端和New Datastax客户端(使用新的Binary协议)之间的任何比较都会有很大的帮助。
这将对我的研究有很大帮助,并且会从过去使用过不同客户的不同人士那里获得很多知识。