Cassandra客户端Java API的

我最近开始使用Cassandra数据库。现在,我正在评估Cassandra client我们应该前进的方向。

我看到过很多关于使用哪个客户端作为Cassandra的文章,但没有一个有明确的答案。

我的团队已要求我对此进行一些研究,并pros and cons针对Cassandra Client API’sJava中的每个问题提出一些建议。

正如我提到的那样,我最近参与其中的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

回到顶部