/中文/
/中文/
/中文/
/中文/
/中文/
/英文/
/中文/
/中文/
/中文/
/英文/
软件Tags: 数据库类apachecassandra
apache cassandra是一款非常方便的数据库软件,不仅具有丰富的功能更有便捷的操作方式以及可拓展性的数据平台,不管是性能还是容错率都是其中佼佼者为众多的用户带来工作效率的提供,功能多多等你来发掘。喜欢的朋友赶紧来下载吧!
当您需要可扩展性和高可用性而又不影响性能时,Apache Cassandra 数据库是您的正确选择。在商品硬件或云基础设施上的线性可扩展性和久经考验的容错性使其成为任务关键型数据的完美平台。Cassandra对跨多个数据中心复制的支持是一流的,可为您的用户提供更低的延迟,并让您放心地在区域性故障中生存。
【经证明】
动视、苹果、BazaarVoice、百思买、CERN、Constant Contact、Comcast、eBay、Fidelity、github、Hulu、ING、Intuit、Macy's?、麦格理银行、微软、麦当劳、Netflix、Outbrain、培生教育、Sky、spotify、Uber、沃尔玛以及其他数千家拥有大型活跃数据集的公司都在使用Cassandra。事实上,财富100强中有40%的公司都在使用Cassandra。
【数字化】
没有单点故障。没有网络瓶颈。集群中的每个节点都是相同的。
【可扩展性】
一些最大的生产部署包括苹果公司的,有超过75000个节点存储超过10PB的数据,Netflix(2500个节点,420TB,每天超过1万亿次请求),中国搜索引擎Easou(270个节点,300TB,每天超过8亿次请求)和eBay(超过100个节点,250TB)。
【容错性】
数据自动复制到多个节点,以实现容错。支持跨多个数据中心的复制。故障节点可在不停机的情况下被替换。
【性能】
Cassandra在基准测试和实际应用中的表现始终优于流行的NoSQL替代品,这主要是由于基本的架构选择。
【持久性】
Cassandra适用于那些无法承受数据丢失的应用,即使整个数据中心瘫痪也不例外。
【您可以掌控一切】
为每次更新选择同步或异步复制。高可用的异步操作通过暗示交接和读取修复等功能进行了优化。
【ELASTIC】
随着新机器的增加,读和写的吞吐量都在线性增加,不会出现停机或中断应用的情况。
【专业支持】
Cassandra支持合同和服务可由第三方提供。
分布式和去中心化(Distributed and Decentralized)
Cassandra 是分布式的,这意味着它可以运行在多台机器上,并呈现给用户一个一致的整体。
去中心化这一事实意味着 Cassandra 不会存在单点失效。Cassandra 集群中的所有节点的功能都完全一样, 所以不存在一个特殊的主机作为主节点来承担协调任务。有时这被叫做服务器对称(server symmetry)。
弹性可扩展(Elastic Scalability)
可扩展性是指系统架构可以让系统提供更多的服务而不降低使用性能的特性。仅仅通过给现有的机器增加硬件的容量、内存进行垂直扩展,是最简单的达到可扩展性的手段。而水平扩展则需要增加更多机器,每台机器提供全部或部分数据,这样所有主机都不必负担全部业务请求。但软件自己需要有内部机制来保证集群中节点间的数据同步。
弹性可扩展是指水平扩展的特性,意即你的集群可以不间断的情况下,方便扩展或缩减服务的规模。这样,你就不需要重新启动进程,不必修改应用的查询,也无需自己手工重新均衡数据分布。在 Cassandra 里,你只要加入新的计算机,Cassandra 就会自动地发现它并让它开始工作。
高可用和容错(High Availability and Fault Tolerance)
可调节的一致性(Tuneable Consistency)
Cassandra 提供了可调节的一致性,允许我们选定需要的一致性水平与可用性水平,在二者间找到平衡点。因为客户端可以控制在更新到达多少个副本之前,必须阻塞系统。这是通过设置副本因子(replication factor)来调节与之相对的一致性级别。
通过副本因子(replication factor),你可以决定准备牺牲多少性能来换取一致性。副本因子是你要求更新在集群中传播到的节点数(注意,更新包括所有增加、删除和更新操作)。
面向行(Row-Oriented)
Cassandra 经常被看做是一种面向列(Column-Oriented)的数据库,这也并不算错。它的数据结构不是关系型的,而是一个多维稀疏哈希表。稀疏(Sparse)意味着任何一行都可能会有一列或者几列,但每行都不一定(像关系模型那样)和其他行有一样的列。每行都有一个唯一的键值,用于进行数据访问。所以,更确切地说,应该把 Cassandra 看做是一个有索引的、面向行的存储系统。
灵活的模式(Flexible Schema)
从 3.0 版本开始,不推荐使用基于 Thrift API 的动态列创建的 API,并且 Cassandra 底层存储已经重新实现了,以更紧密地与 CQL 保持一致。Cassandra 并没有完全限制动态扩展架构的能力,但它的工作方式却截然不同。CQL 集合(比如 list、set、尤其是 map)提供了在无结构化的格式里面添加内容的能力,从而能扩展现有的模式。CQL 还提供了改变列的类型的能力,以支持 JSON 格式的文本的存储。
高性能(High Performance)
Cassandra 在设计之初就特别考虑了要充分利用多处理器和多核计算机的性能,并考虑在分布于多个数据中心的大量这类服务器上运行。它可以一致而且无缝地扩展到数百台机器,存储数 TB 的数据。Cassandra 已经显示出了高负载下的良好表现,在一个非常普通的工作站上,Cassandra 也可以提供非常高的写吞吐量。而如果你增加更多的服务器,你还可以继续保持 Cassandra 所有的特性而无需牺牲性能。
Cassandra 的应用场景
我们已经介绍了 Cassandra 的主要特点,对 Cassandra 的长处有了一定的理解。尽管 Cassandra 设计精巧,功能出色,但也不能胜任所有的工作。所以我们来介绍一下 Cassandra 最适合的场景。
写密集、统计和分析型工作
许多早期使用 Cassandra 的产品都用于存储用户状态更新、社交网络、建议/评价以及应用统计等。这些都是 Cassandra 很好的应用场景,因为这些应用大都是写多于读的,并且更新可能随时发生并伴有突发的峰值。事实上,支撑应用负载需要很高的多客户线程并发写性能,这正是 Cassandra 的主要特性。
根据项目的 wiki,Cassandra 已经被用于开发了多种不同的应用,包括窗口化的时间序列数据库,用于文档搜索的反向索引,以及分布式任务优先级队列。
大规模部署
如果你认为需要至少几个节点才能支撑你的业务,那 Cassandra 就是个不错的选择。如果你的应用可能需要数十个节点,那 Cassandra 可能就是个很棒的选择了。
地区分布
Cassandra 直接支持多地分布的数据存储,Cassandra 可以很容易配置成将数据分布到多个数据中心的存储方式。如果你有一个全球部署的应用,那么让数据贴近用户会获得不错的性能收益,Cassandra 正适合这种应用场合。
变化的应用
如果你正在“初创阶段”,业务会不断改进,Cassandra 这种灵活的模式的数据模型可能更适合你。这让你的数据库能更快地跟上业务改进的步伐。