Cassandra客户端Java API的
我最近开始使用Cassandra数据库。现在,我正在评估Cassandra client
我们应该前进的方向。
我看到过很多关于使用哪个客户端作为Cassandra的文章,但没有一个有明确的答案。
我的团队已要求我对此进行一些研究,并pros and cons
针对Cassandra Client API’s
Java中的每个问题提出一些建议。
正如我提到的那样,我最近参与其中的Cassandra
原因还不是很清楚,为什么某些人选择Pelops
client,为什么某些人与Astyanax
其他客户一起去。
我了解每个Cassandra客户端的简要信息,这意味着我能够完成这项工作,并开始对Cassandra数据库进行读写。
以下是我到目前为止的信息。
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协议)之间的任何比较都会有很大的帮助。
这将对我的研究有很大帮助,并且会从过去使用过不同客户的不同人士那里获得很多知识。
回答:
Thrift越来越成为传统API:
首先,您应该意识到Thrift API不会获得新功能;它在那里是为了向后兼容,不建议用于新项目。
- 保罗
因此,我将避免使用基于Thrift的API(仅为了向后兼容而保留了Thrift)。
说的是,如果您确实需要使用基于节俭的API,那么我会选择Astyanax。Astyanax非常易于使用(与其他节俭API相比,但我的个人经验是Datastax的驱动程序更加简单)。
因此,您应该看看Datastax的
API(和GitHub repo)吗?我不确定是否有可供下载的API编译版本,但您可以使用Maven轻松构建它。另外,如果您查看GitHub存储库的提交日志,它会进行非常频繁的更新。
该驱动程序仅与CQL3配合使用,并且是异步的,但请注意,Cassandra 1.2是最早受支持的版本。
Astyanax是基于节俭的,而Datastax的驱动器是二进制协议。这是我在节俭和CQL之间可以找到的最新基准(请注意,这些绝对过时了)。但是公平地说,这些基准中显示的性能上的细微差别几乎没有关系。
Datastax的
支持相对于Astyanax具有绝对的优势(Netflix
尝试实现它,但决定不这样做)。
我真的不能反对Netflix的Wiki。该文档非常出色,并且更新相当频繁。他们的Wiki包含代码示例,如果您需要查看工作中的代码,则可以在源代码中找到测试。我很难找到Datastax驱动程序的任何文档,但是GitHub存储库中提供了测试,因此这是一个起点。
以上是 Cassandra客户端Java API的 的全部内容, 来源链接: utcz.com/qa/400975.html