我最近开始使用Cassandra数据库。现在我正在评估我们应该采用哪个Cassandra客户端。
我看过一些关于Cassandra应该使用哪个客户端的帖子,但没有一个很明确的答案。
我的团队要求我对此进行一些研究,并为每个Java中的Cassandra Client API列出一些优缺点。
正如我所说,我最近涉足Cassandra,所以不太清楚为什么某些人选择Pelops客户端,为什么某些人选择Astyanax和其他一些客户端。
我对每个Cassandra客户端都有一些简要了解,这意味着我能够使其工作并开始读写Cassandra数据库。
以下是我目前拥有的信息。
CASSANDRA APIS
Hector (已准备好生产环境)
Java APIs中最稳定、可用的API。Astyanax(新秀)
Netflix提供的干净的Java API。它的使用范围不如Hector广泛,但它很可靠。Kundera (NoSQL ORM)
符合JPA标准,当您想通过对象与Cassandra交互时很方便。
这在某种程度上限制了您,因为您将无法拥有动态数量的列/名称等。但它确实允许您将ORM迁移到Cassandra上,或者为更传统的用途将存储集中到Cassandra上。Pelops
我只是简单地使用过Pelops。它是一个直接的API,但似乎没有强大的支持。PlayORM (无约束的ORM?)
我刚听说这个。看起来它正在尝试解决阻抗匹配问题,并提供了更灵活的数据访问模型。
首要考虑因素是:低延迟开销、异步API以及生产环境中的可靠性/稳定性。(例如,在包装客户端的DAL中可以获得更加用户友好的API)。连接池和分区感知等一些其他有用的功能。能够检测到任何新添加的节点。还需要良好的支持(如下所指出的)。
谁能提供一些关于这个问题的想法?还有每个Cassandra客户端的优缺点,哪个客户端也可以满足我的要求,这也将是一个很大的帮助。
我相信,基本上我会围绕Astyanax客户端或使用二进制协议的New Datastax客户端展开研究。但是目前没有确定的信息来支持我的研究,并向我的团队展示它。
对Astyanax客户端和使用新二进制协议的New Datastax客户端之间的任何比较都将是极大的帮助。
这将对我的研究非常有帮助,并将从过去使用不同客户端的不同人士那里获得很多知识。