国内生产环境使用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.

cassandra随机获取数据_国内哪些互联网公司使用了 Cassandra 数据库?相关推荐

  1. cassandra随机获取数据_从数据库随机获取数据库

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. cassandra随机获取数据_Cassandra维护最终一致性 和存储机制 分区策略

    维护最终一致性 Cassandra通过4个技术来维护数据的最终一致性,分别为逆熵(Anti-Entropy),读修复(Read Repair),提示移交(Hinted Handoff)和分布式删除. ...

  3. cassandra随机获取数据,Cassandra适合写入和少读,HBASE随机读取写入

    Is it right that Cassandra is good for write and less read, whereas HBASE is good for random read an ...

  4. mysql 随机选择数据_从MySQL随机选取数据

    从MySQL随机选取数据最简单的办法就是使用"ORDER BY RAND()"; 方案一: SELECT * FROM `table` ORDER BY RAND() LIMIT  ...

  5. typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取

    在第一期的GDSC数据总览中,我们根据数据库的模块进行总体的介绍.今天我们再深入了解GDSC所包含的数据及其获取的方法,也就是GDSC的数据下载模块. GDSC数据下载的模块,分为4个模块,分别是AN ...

  6. app怎么调用mysql数据_手机app怎么调用php操作数据库的接口?

    做毕设项目,现在需求很简单,php文件放在服务器上,作用是获取mysql数据库的数据. 服务器端php代码如下: header('Access-Control-Allow-Origin:*'); // ...

  7. java中根据权重随机获取数据

    应用场景: 有时我们需要从一些列数据中根据权重随机选取指定条数记录出来,这里需要权重.随机,我们根据权重越大的,出现概率越大.例如广告系统.  实现原理: 需求确认后在网上找了很多的资料,可惜没有比较 ...

  8. c 获取mysql列数据_转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,"C API函数描述". 函数 ...

  9. mysql sql注入怎么获取数据_手把手教你通过SQL注入盗取数据库信息

    目录数据库结构 注入示例判断共有多少字段 判断字段的显示位置 显示登录用户和数据库名 获取所有数据库名 获取对应数据库的表 获取对应表的字段 获取所有的用户密码 我们都是善良的银!一生戎码只为行侠仗义 ...

最新文章

  1. Linux系统与性能监控
  2. 疫情之下,这些公司开始给员工发菜了!
  3. 网站不允许上传asp cer cdx htr等文件时
  4. selenium2与python自动化1-selenium简介与降级
  5. Linux从入门到精通——Apache
  6. DatabaseMetaData.getIndexInfo
  7. linux网络编程之多路I/O转接服务器poll函数
  8. 排序(Sort)--【一】
  9. CCNA试验-NAT
  10. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql
  11. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found
  12. Linux下通过 rm -f 删除大量文件时报错:Argument list too long
  13. ASP.NET文件上传大小的限制解决方案
  14. i3cpu驱动xp_Intel英特尔 Core i3/Core i5/Core i7系列CPU显示驱动 14.46.9.5394版 For XP-64
  15. 企业如何保护好自己的知识产权
  16. php编写六十甲子纳音表_六十甲子纳音表
  17. rovisional headers are shown Learn more 报错
  18. python的docx库使用教程
  19. python画图双纵轴多张图折线柱状图
  20. Cocostudio学习笔记(2) Button + CheckBox

热门文章

  1. linux centos 访问根目录 not accessable
  2. 扫码反馈,“码”上回复:二维码在业主意见反馈中的应用
  3. 斗破苍穹-牛仔版美杜莎
  4. C. Wilbur and Points(简单贪心加合法性判断)
  5. JavaScript基础学习——CSS预处理Less
  6. 【无人机】【2012.01】微型直升机的视觉导航
  7. 今天在QQ群中看到这么一段,广告词新编,太有才了
  8. acer p3 171 装android,宏碁P3:平板PC一秒切换_Acer P3-171-3322Y2G06as_笔记本评测-中关村在线...
  9. Git GitHub入门
  10. html怎样分级显示,小技巧之分级显示详解