说实话,作者最初对Cassandra的认知来自电子经纪系统(Electronic Broking System,EBS)。EBS在其电子交易系统中应用了Cassandra分布式数据库和硬件商业消息中间件solace (请参考,SOLACE消息中间件在交易所的解决方案)。
我们系统的技术选型问题(Akka+Cassandra),我们的技术选型决策依据是什么?其实Cassandra就是非常主流的数据库,我完全可以用调研的报告去说Cassandra的应用主流程度,以及国内目前仍然不火的原因。
ebay,康卡斯特,惠普,赛门铁克等在内部都应用了。
Apple内部的云存储也普遍使用Cassandra,在全球有16w+的存储节点。(华为技术路线走了HBase方向)
主流厂商应用电子经纪系统EBS是目前全球最大的即期外汇及贵重金属电子交易系统。EBS服务银行间外汇市场,也是银行同业及专业交易社群市场信息方案提供商。目前,每天在38个国家大约有1100亿美元即期外汇(当前应远远不止)。50万盎司黄金和4百万盎司白银通过其即期(EBS Spot)交易系统成交。1993年9月,全球14家最大的外汇银行投资5000万美元组建合伙公司并发展EBS交易系统,与路透Dealer竞争。EBS迅速成为银行问即期外汇交易的主要电子经纪人。EBS提供的产品组合包括电子即期交易经纪系统(可以从一家EBS主银行获取最佳的即期价格),基于直接交易、对话工具、市场数据、独立平台上的新闻与分析系统,和贵重金属市场的电子即期经纪系统(EBSMetals)以及提供市场数据的系统(EBSMarketData)等。EBS的系统仍在迭代演进中。
经过实践事实证明,Cassandra对某些应用程序非常有用。理想的Cassandra应用程序具有以下特征:
1 写入大幅度超出读
2 数据很少更新,并且在进行更新时它们是幂等的
3 通过主键查询,非二级索引
4 可以通过partitionKey均匀分区
5 不需要Join或聚合
6 事务需求较弱
推荐使用Cassandra的一些应用场景:
1 交易日志(购买行为,测试记录,观影历史等)
2 时序数据(股票行情,需要您自行聚合)
3 跟踪几乎任何事情,包括订单状态,包裹等
4 存储健康追踪数据
5 气象服务历史
6 物联网状态和事件历史
7 汽车的物联网数据
8 Email
为什么要用Cassandra,可以先参考这篇文章阿里公布的资料:Cassandra全球使用的公司及场景。Cassandra比较适合互联网在线应用。 其在宽表市场排名: 排名第一。且 Datastax、ScyllaDB、CosmosDB都兼容CQL,已成事实标准:
Cassandra为互联网业务而生
如果业务系统有事务的要求,阿里专家建议使用MySQL或者阿里云POLARDB数据库,其提供的事务特性及SQL能力更匹配BOSS、CRM、ERP等业务需求。
如果业务类似于互联网业务,具有如下特点:极致在线、高并发、大容量、可调的一致性、灵活扩展,Cassandra应运而生。
1 极致在线:支持多机房部署,单节点/单机房故障时,业务不中断。
2 扩展性强:支持从160GB到10PB的容量,支持从数千QPS到数千万的QPS,支持实例规格扩展,支持从单节点到多节点,支持从单机房到多机房,还将提供从同城到异地等多种扩展能力。匹配业务系统从小到大持续发展的特点,既满足不同发展时期对性能、成本、可靠性、灾备等不同要求,又可保障业务的平滑演进及连续性。
3 可调一致性:支持多种读写一致性级别,用户可依据自身业务系统特点灵活配置。比如对于物联网等业务,可以放宽一致性要求以获取更高的性能;对一致性要求较高的业务,则可选择QUORUM等强一致性级别。如果您有这样的业务:聊天消息、新闻推送、历史订单、对象存储、购物车、计费系统、评论等,以及数据驱动的业务如风控、推荐、用户画像、物联网、日志分析等,阿里云Cassandra数据库是一个极好的选择。
4 易学习掌握:开发者&DBA容易上手一个熟悉MySQL的开发者,可以在半天内完全掌握Cassandra用法;一个熟悉MySQL的DBA,可以在一天内掌控Cassandra。
5 易运维:Cassandra是一个易用易运维的数据库,有如下优点:CQL借鉴SQL语法,方便MySQL及传统数据库开发者直接使用支持安全认证、SSL及完整鉴权体系,让DBA更省心商业化前会支持备份恢复的能力,让DBA更放心支持完整的索引服务,比如localindex、MV视图、SASI全文索引,方便开发者使用原生提供各类语言的客户端:Java、Python、PHP、.Net、Nodejs等原生客户端(非thrift模式)连接Cassandra,
6 极强性能:大数据存储的利器、支持搭配X-Pack SparkSpark是目前主流默认的大数据处理引擎,Cassandra是目前主流的BigData NoSQL数据库,性能甩MongoDB很远
极强性能应用案例
Cassandra+Spark可以处理风控、推荐、物联网等很多数据驱动的业务。阿里云数据库团队也提供了X-Pack Spark引擎支持Cassandra,满足用户诉求。
思科内部商业分析系统
业务架构 技术架构
参考资料
作者:阿里封神
链接:https://www.zhihu.com/question/26410789/answer/818427511
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
网友评论