gpt4 book ai didi

java - Cassandra 客户端 Java API

转载 作者:IT老高 更新时间:2023-10-28 20:33:52 27 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




我最近开始使用 Cassandra 数据库。现在我正在评估哪个Cassandra client我们应该继续前进。

我在 stackoverflow 上看到过各种关于 Cassandra 使用哪个客户端的帖子,但没有一个给出非常明确的答案。

我的团队要求我对此进行一些研究并提出某些 pros and cons每个Cassandra Client API’s在 java 。

正如我提到的,我最近参与了 Cassandra所以不太清楚为什么某些人会选择 Pelops client以及为什么有些人会选择 Astyanax和其他一些客户。

我知道每个 Cassandra 客户端的简要情况,我的意思是我能够完成这项工作并开始读取和写入 Cassandra 数据库。

以下是我目前掌握的信息。

Cassandra API

  • 赫克托(生产就绪)
    最稳定的 Java API,为黄金时段做好准备。
  • Astyanax(后起之秀)
    来自 Netflix 的干净的 Java API。它不像 Hector 那样被广泛使用,但它是可靠的。
  • 昆德拉(NoSQL ORM)
    JPA 兼容,当您想通过对象与 Cassandra 交互时,这很方便。
    这在某种程度上限制了您,因为您将无法拥有动态数量的
    列/名称等。但它确实允许您移植 ORM,或集中存储
    到 Cassandra 上进行更传统的用途。
  • 佩洛普斯
    我只是简单地使用过 Pelops。这是一个直接的 API,但似乎没有
    有它背后的动力。
  • PlayORM(没有约束的 ORM?)
    我刚听说这件事。看起来它正在试图解决阻抗
    通过引入 JQL 在传统的基于 JPA 的 ORM 和 NoSQL 之间不匹配。它看起来
    有希望。
  • 节俭(避开我!)
    这是“低级”API。

  • 以下是我们决定的优先事项 Cassandra Client ——
  • 首要任务是:低延迟开销、异步 API 和生产环境的可靠性/稳定性。
    (例如,可以在封装客户端的 DAL 中使用更用户友好的 API)。
  • 连接池和分区感知是其他一些不错的功能。
  • 能够检测添加的任何新节点。
  • 良好的支持(如下面的院长所指出的)

  • 任何人都可以对此提供一些想法吗?以及每个的优缺点 Cassandra Client以及哪个客户可以满足我的要求也会有很大帮助。

    我相信,主要是我会围绕 Astyanax client or New Datastax client that uses Binary protocol我想基于我迄今为止的研究。但是没有某些信息来支持我的研究并将其呈现给我的团队。

    Astyanax 客户端和 New Datastax 客户端(使用新的二进制协议(protocol))之间的任何比较都会有很大帮助。

    这将对我的研究有很大帮助,并且会从过去使用过不同客户的不同人那里获得很多关于此的知识。

    最佳答案

    Thrift 越来越像一个遗留 API:

    First, you should be aware that the Thrift API is not going to be getting new features ; it's there for backwards compatibility, and not recommended for new projects.
    - the paul



    所以我会避免使用基于 Thrift 的 API(保留 Thrift 只是为了向后兼容)。

    也就是说,如果您确实需要使用基于节俭的 API,我会选择 Astyanax。
    Astyanax 非常易于使用(与其他 thrift API 相比,但我个人的经验是 Datastax 的驱动程序更简单)。

    所以你应该看看 Datastax's API ( and GitHub repo )?我不确定是否有任何编译版本的 API 可供下载,但您可以使用 Maven 轻松构建它。此外,如果您查看 GitHub 存储库的提交日志,它会进行非常频繁的更新。

    该驱动程序仅适用于 CQL3 并且是异步的,但请注意 Cassandra 1.2 是最早支持的版本。

    性能
    Astyanax 是基于节俭的,而 Datastax 的驱动器是二进制协议(protocol)。这是最新的 benchmarks我可以在 thrift 和 CQL 之间找到(注意这些肯定已经过时了)。但公平地说,这些基准测试中显示的微小性能差异很少有影响。

    异步支持
    Datastax 的 asynch 与 Astyanax 相比,支持是一个明显的优势(Netflix tried implementing 它但决定不这样做)。

    文档
    我真的不能反驳 Netflix's wiki .该文档非常好,并且更新得相当频繁。他们的 wiki 包含代码示例,如果您需要查看工作中的代码,可以在源代码中找到测试。我很难找到 Datastax 驱动程序的任何文档,但是 GitHub 存储库中提供了测试,因此这是一个起点。

    也看看 this answer (好吧..无论如何都不是我的)它研究了 Thrift 和 CQL 的一些优点/缺点。

    关于java - Cassandra 客户端 Java API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983190/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com