国内哪些互联网公司使用了 Cassandra 数据库?

关注者
620
被浏览
165,581

21 个回答

国内生产环境使用Cassandra比较多的大公司有360,从公开的资料看,应该有至少1500台服务器的集群。360选用cassandra的原因如下:团队人员少,需求紧,选择开源项目;无单点,无中心,适合在线业务;代码易懂,团队成员有代码基础;社区比较活跃。

另外一些中小型公司和创业公司也有在使用。

这里要解释几个对cassandra的误解:

1、Facebook弃用?

Facebook当初想用cassandra实现其消息系统,但后来发现不合适,原因不是cassandra不靠谱,而是Cassandra的最终一致性模型不适合Message System,HBase具有更简单的一致性模型。Cassandra强调AP ,Hbase强调CP。目前Facebook的inbox search系统在使用,8亿用户,200T数据;其移动应用开发平台也使用cassandra。

2、Twitter弃用?

本质是mysql和nosql之争。cassandra能进入twitter的视野,恰恰说明cassandra是nosql的代表性产品之一。为什么twitter在tweets系统中不使用cassandra?"这是一次战略上的变化。我们将继续维护我们原本基于Mysql的存储。我们相信,现在还没有到大规模迁移数据到一个新技术的时候。”目前twitter也有使用cassandra——Using Cassandra in production for geolocation and analytics。

3、Cassandra不火?

国内对mongodb和hbase推崇备至,究其原因是因为mongodb这个公司进入了中国市场并建立了中文组,而hbase在阿里的大范围使用和推广下培养了一大批用户和公开材料。Cassandra最近两年在大数据公司Datastax的大力培育下获得长足发展,功能和性能均大幅提升,Datastax的估值也达数亿美元。从apache cassandra首页来看,大概有超过1500个公司在使用cassandra。其中除了facebook和twitter外还一些有代表性的公司列举如下:

Instagram:inbox、newsfeed、 audit、fraud detection,12 EC2 node,1.2T,2w+ wps,1.5w+ rps;

eBay:200+TB,400+M写,100+M读,应用场景:商品详情页上的Social Signals,如Like,Want,Own,Favorites等;用户和商品的hunch taste graph;时间序列如移动通知,反作弊,soa,监控,日志服务等;

Netflix:包含288+96+60个实例的大规模集群,每秒110万的写操作,3个AWS EC2 美国东部region的zone自动复制副本,总计330万写操作/秒;

Apple:75000+ nodes, 10s of PBs,Millions ops/s, largest cluster 1000+ nodes。

从技术实现上来讲,cassandra同时具备AWS Dynamo和Google Bigtable的设计理念,同时引入了P2P技术,具备大规模可分区行存储能力,强调AP,实现了最终一致性,具备多数据中心复制支持,具备市场上最具有竞争力的可扩展性,无中心节点,一致性和时延可调,无单点故障,每个节点只有一个进程等等大数据存储管理的先进特点,并支持spark、storm、hadoop的集成。但同时,Cassandra实现复杂性高,没有相应的中文社区,文档太少,国内应用和实践太少,Datastax也未进入中国市场,因此在中国的推广会比较困难。

值得一提的是,Cassandra的LSM结构特别适合SSD设备,有效抑制了SSD的写入放大,有力的保证了其超强大的写性能,这点和LevelDB的设计基本一样;同时对CPU的使用也能发挥到极致,对于多核超线程设备和NUMA架构下能发挥更大的优势;另外,Cassandra的row cache、key cache、LeveledCompactionStrategy压紧策略、读时碎片化结果重新写入机制等改善措施也极大了提升了其读性能。这些特点都非常符合现代服务器的发展趋势。笔者曾经在腾讯的TS8-2型服务器(CPU物理2个,逻辑24个,6核,支持超线程Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz/32G/300G*12 IntelSSD)上搭建了18台服务器的集群为知识社区类产品提供后端存储服务,性能上是非常有竞争力的,而且Cassandra非常适合做在线架构和构建在线存储服务,虽然也支持集成hadoop,但要求在一个在线系统上大规模跑离线数据不是一个明智的做法,要看具体的应用场景。而BAT规模的就那几家,大部分的中小型业务和创业项目,够用了。

相信只要Datastax公司能保持住市场竞争优势,在大数据时代,Cassandra必然还是有一席之地的。

最后,想说一点的是:技术人永远保持自己基于事实的独立判断。不要人云亦云,多看上下文,多亲自调查保持发言权;世事也绝不是非黑即白,看场景,分时势,适合的即是最好。

##### 2015年9月更新

在2015年9月22-24日的Cassandra 2015峰会上,KVM作者宣布了C++版本的Cassandra——ScyllaDB,完全兼容Apache Cassandra,单节点吞吐量性能是Java版本的10倍,号称是最快的列存储NoSQL。不得不说,美军钻得很深,把现代服务器的优势发挥得淋漓尽致。

At Cassandra Summit opening today, Avi Kivity and Dor Laor (who had previously written KVM and OSv) announced ScyllaDB — an open-source C++ rewrite of Cassandra, the popular NoSQL database. ScyllaDB claims to achieve a whopping 10 times more throughput per node than the original Java code, with sub-millisecond 99%ile latency. They even measured 1 million transactions per second on a single node. The performance of the new code is attributed to writing it in Seastar — a C++ framework for writing complex asynchronous applications with optimal performance on modern hardware.

国内技术选型很有意思,举几个例子

来源Google trend