有人对使用 cassandra 和 scala 有什么建议吗?没有原生的 scala-cassandra 客户端支持 cassandra 8.0+ 版本,所以我必须使用 hector,它似乎工作正常但不够简洁。您对 hector 有任何尝试、建议或任何包装代码等吗?
5 回答
Apache Cassandra 和 Datastax Enterprise 的官方 Scala 驱动程序完全支持 CQL 3.0,是phantom。
Phantom 由 Datastax 官方合作伙伴 Outworkers 开发,明确取代所有其他驱动程序。它正在积极开发和维护,完全支持所有最新的 Cassandra 功能。
免责声明:我是 phantom 的项目负责人,结果可能会对我的推荐产生偏见。我们在 phantom wiki 上提供了更深入的功能比较。
Cassie 是“Cassandra 的 Scala 客户端”:https ://github.com/twitter/cassie 。根据 twitter 的开发块,它于 2012 年 2 月 9 日在对这个问题的初步回答之后发布。
https://wiki.apache.org/cassandra/ClientOptions还列出了我认为比 Cassie 更老的 Cascal。
你看过模板包中的类吗?它们可能会使您的包装更简洁。我们在 wiki 上有一个快速操作方法: https ://github.com/rantav/hector/wiki/Getting-started-%285-minutes%29
两个流行的客户端驱动程序是 Quill 和 Phantom。他们都在下面使用 Datastax。我使用 play 对一个简单的 json GET/POST 进行了负载测试分析。您可以在 root/loadtest/phantom|quill/results 下的项目中查看结果的并排比较。
可能会帮助您更好地选择驱动程序。
https://github.com/yleun/cassandra-loadtest
Cassandra 3.10 scala 2.11.8 幻影 2.6.4 羽毛笔 1.2.1
介绍
正如之前的答案所建议的,Cassandra 的基于 Scala 的客户端是:
但是,它们都在内部基于Datastax Java Driver。
就个人而言,我不喜欢它们中的任何一个,Java Driver 感觉更加自然和简单。另一方面,这些库在其之上产生了一些开销,因此在性能方面它们总是较差的。
Java 驱动程序 Scala 集成
我发现一些文章(示例)展示了如何将 Java Driver 与 Scala 更好地集成,而且看起来并不难。
结果是我自己的库,你可以在 GitHub 上找到:https ://github.com/atais/scassandra
它允许在 Scala 中无缝集成CQL
查询和操作,ListenableFuture
而无需将其映射到scala.Future
.
享受 :)