Cassandra 原生二进制协议性能

Posted

技术标签:

【中文标题】Cassandra 原生二进制协议性能【英文标题】:Cassandra Native Binary Protocol Performance 【发布时间】:2013-01-23 17:48:36 【问题描述】:

我目前正在计划将一个相当大的 MongoDB 部署(大约 25 台大型服务器分布在几个数据中心)迁移到 Cassandra。我看到 Cassandra 1.2 采用了一个相对较新的原生二进制协议,似乎这就是该项目的未来。当我读到它时它看起来不错,但我最近一直在针对一个简单的基于 Thrift 的客户端对其进行测试,并且 Thrift 客户端在每次测试中都大大优于它。我的问题是本机二进制协议/客户端在什么情况下优于 Thrift,是否有人在生产中使用它?

这是一个示例基准:

本地 3 节点集群(使用 ccm 创建),有 10 个客户端线程向其发送垃圾邮件 总吞吐量(写入、读取)[5 分钟内的总操作数]: 二进制:3,316,725.0 2,179,193.0 节俭:7,310,482.0 2,872,528.0

【问题讨论】:

【参考方案1】:

当您将现有客户端用作 Astyanax 或 Hector 时,不使用二进制协议。 你可以看看java-driver。它尚未发布,但据我测试,它工作正常。

【讨论】:

以上是关于Cassandra 原生二进制协议性能的主要内容,如果未能解决你的问题,请参考以下文章

cassandra 存储二进制data

cassandra插入二进制大文件超时问题

iPhone 原生应用的测试驱动设计

RPC框架GPRC浅析

Linux网络编程(协议解析)

Protobuf协议实现原理