我最近开始使用 Cassandra 数据库。现在我正在评估Cassandra client我们应该继续前进的过程。
我在 stackoverflow 上看到过各种关于 Cassandra 使用哪个客户端的帖子,但没有一个给出非常明确的答案。
我的团队要求我对此进行一些研究,并在 Java 中pros and cons为每一个提出一些建议。Cassandra Client API’s
正如我所提到的,我最近参与其中,Cassandra所以不太了解为什么某些人会选择Pelops client以及为什么某些人会与Astyanax其他一些客户一起去。
我了解每个 Cassandra 客户端的简要情况,我的意思是我能够完成这项工作并开始读取和写入 Cassandra 数据库。
以下是我目前掌握的信息。
卡桑德拉·阿皮斯
Hector (Production-Ready)
最稳定的 Java API,为黄金时段做好准备。Astyanax (The Up and Comer)
来自 Netflix 的一个干净的 Java API。它不像赫克托那样广泛使用,但它很坚固。Kundera (The NoSQL ORM)
JPA 兼容,当您想通过对象与 Cassandra 交互时,这很方便。
这在某种程度上限制了您,因为您将无法拥有动态数量的列/名称等。但它确实允许您通过 ORM 移植,或将存储集中到 Cassandra 上以用于更传统的用途。Pelops
我只简单地使用过 Pelops。这是一个直截了当的 API,但似乎没有它背后的动力。PlayORM(没有约束的 ORM?)
我刚刚听说过这个。看起来它试图通过引入 JQL 来解决传统的基于 JPA 的 ORM 和 NoSQL 之间的阻抗不匹配。看起来很有希望。Thrift (Avoid Me!)
这是“低级”API。
以下是我们在决定时的优先事项Cassandra Client-
- 首要任务是:低延迟开销、异步 API 和生产环境的可靠性/稳定性。
(例如,可以在包装客户端的 DAL 中拥有更加用户友好的 API)。 - 连接池和分区感知是其他一些不错的功能。
- 能够检测到添加的任何新节点。
- 良好的支持(正如下面的院长所指出的)
任何人都可以提供一些想法吗?每个人的任何利弊以及Cassandra Client哪些客户可以满足我的要求也将有很大帮助。
我相信,主要是我将围绕Astyanax client or New Datastax client that uses Binary protocol我猜想基于我到目前为止的研究。但是没有特定的信息来支持我的研究并将其呈现给我的团队。
Astyanax 客户端和 New Datastax 客户端(使用新的二进制协议)之间的任何比较都会有很大帮助。
这将对我的研究有很大帮助,并且会从过去使用过不同客户的不同人那里获得很多关于这方面的知识。