在本文中,咱们将介绍Cassandra名字的含义、Cassandra的发展简史、Cassandra这项技术的特色及优点,以及对于这项技术的将来展望。
本文将用浅显易懂的方式,帮助您将对Cassandra这项技术的前世此生有一个粗略的了解。
谁是Cassandra
Apache Cassandra™是一种分布式的NoSQL数据库。它具备成功应用所需的持续可用性、高性能、可线性扩展等特色。
Cassandra(卡珊德拉)是希腊神话中特洛伊国王普里阿摩斯的女儿,她是一个具备预言能力的先知,却因受到阿波罗诅咒,其预言永远不得被人们相信。Cassandra预见到了特洛伊城的毁灭,却因无人相信而无力阻止。
有人曾这样评述卡珊德拉:她和古希伯来的众先知同样直视事理的真相,不论过去、如今或将来;可是她的明晰无误的眼力,和她心中负荷的宇宙事理的可怖奥秘,却使她隔绝于正常的人生,使她在世人眼中成了个疯子。这即是古来先知们一再遭遇的命运。
虽然Cassandra做为先知不被人相信,可是做为一种面向将来的技术,愈来愈多的开发者和科技公司已经看到了Cassandra的价值而且从中受益。
Cassandra简介
Apache Cassandra是一种开源的、分布式的NoSQL数据库。它最先是由Facebook内部开发,后来于2008年7月公开了源码。
Cassandra不只具备现代应用所要求的持续可用性(没有宕机时间)、高性能以及线性扩展的特色,其操做也十分简易,并且能够便捷地跨数据中心和跨区域进行数据复制。
Cassandra能够支持PB级别的信息处理,也能够负载每秒上百万条的并发操做。强大的功能使得Cassandra可以帮助企业和组织在多云及混合云架构中处理巨量的数据。
做为一个在Cassandra这项技术上深耕十余年的企业,DataStax致力于同开源社区一块儿开创属于Cassandra的世代,并巩固其在云原生应用数据库中的领先地位。
Cassandra最先是由Facebook工程师Avinash Lakshman和Prashant Malik开发,用于提升Facebook邮件收件箱的搜索功能。经过使用Cassandra,用户能够更快地找到他们须要的邮件和内容。
Cassandra的架构结合了亚马逊Dynamo论文中提出的分发模型和Google BigTable论文中描述的日志结构存储引擎(log-structured storage engine),从而实现了在不一样节点间的横向拓展。其结果是Cassandra做为一种高可拓展性的数据库,能搞定大多数数据量巨大及性能密集型的使用场景。
2008年7月,Facebook公开了Cassandra的源码。2009年3月,Cassandra成为了Apache孵化器的开源项目。以后在2010年4月,Cassandra从Apache孵化器毕业,成为了Apache基金会的最高级别项目之一。时至今日,Cassandra在Apache许可证2.0版本下可自由使用。
DataStax的团队由Cassandra数据库演进过程当中的领军人物组成,他们贡献了Cassandra 3.0版本中大部分的代码。在4.0及以后的版本中,咱们的团队也在持续积极地与开源社区紧密合做,为Cassandra的将来贡献所能。
技术特色及优点
从Linux这样的操做系统到管理数据的基础设施,当代的软件开发组织已经大量地在使用开源技术。开源技术的吸引力不只来自于其可负担性和可延展性,其避免被套牢捆绑的灵活性也至关受到欢迎。
使用开源技术的企业和团体每每能更快地习得新技术且进行创新。
Cassandra查询语句(CQL)与SQL很是相近,大多数开发者能够用很短的时间对CQL熟悉起来。(若是你须要帮助,这里有一份CQL入门介绍)
大多数传统数据库都采用了主从结构 (primary / secondary architecture),其中只有惟一的一级数据备份能够有读写操做,二级数据备份则只能有读取的操做。这种结构的缺点是高延迟、高成本以及在规模方面的低可用性。
在Cassandra中,并无一个节点负责向整个节点集群复制数据,而是每个节点均可以进行读写操做。这一特色加强了数据库的性能和弹性。
因为Cassandra的每个节点均可以进行读写操做,数据能够被快速复制到混合的云环境,也能够快速分布到不一样的地理位置。
若是一个节点出现了故障,用户会被自动转到最近一个工做正常的节点。用户甚至不会注意到有节点出现了问题,由于他们使用的应用即便在这种状况下也能正常运做。
也就是说,应用程序会永远处于可用状态,数据也能随时获取且不会丢失。
不只如此,Cassandra内置的修复服务会马上修复节点故障带来的数据一致性问题,并不须要人为干预。当有节点出现故障,系统的效率甚至不会受到影响。
在传统的环境中,扩展应用每每是一个耗时耗钱的过程,须要购买更贵的硬件来实现系统的垂直扩展。
Cassandra则只需经过增长节点的方式进行水平扩展便可。例如,使用4个节点能够负荷200,000操做/秒,而增长到8个节点就能够拥有400,000操做/秒的性能。点击这里查看原文。
现在,领头企业愈来愈多地采用多数据中心、混合云甚至是多云的部署方案,从而能够利用不一样部署的优点并避免被单一供应商的生态系统所限制。
企业要想最大限度地利用多云环境,则须要底层的云数据库提供可延展性、安全性和性能的保障。
因此在乎料之中的是,云数据库市场预计每一年将增加65%,而且在2022年前达到689亿美圆的市值。
将来展望
Cassandra传统上被人们认为是一个极为强大的数据库,能够在绝大多数使用场景中脱颖而出,然而也是比较难学习和操做的数据库之一。
DataStax致力于与Cassandra社区一块儿让Cassandra成为更容易为我的使用、为企业采用和延伸的技术。
- 将提供简化的开发者接口APIs,包括REST和GraphQL
-
将在CQL中添加更多与SQL相似的功能,包括索引(indexing)、表的合并(Joins)、ACID(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)及对JSON的彻底支持
-
标准的管理接口APIs及正式的、有官方支持的Kubernetes Operator
-
将使存储引擎变为可插拔的,并同其它接口APIs一块儿实现数据库部署和配置的定制化

