2016年,Redisson首先尝试了使用Vert.x框架,Vert.x的特点是集群运行环境、多语言交互性和基于成熟技术,并且Vert.x对开发者的限制比较少。因此,Redisson做了相关的实验,实现了Redisson在其他语言中的运行。但是这种方案学习成本非常大,而实际收益却不高。
2018年,Redisson注意到ORACLE Labs推出的GraalVM,GraalVM的底层是Java运行层,包括GraalVM和SubstrateVM,可以让其他语言都能够编译融合并放入JVM中执行,同时保证相互沟通的桥梁。SubstrateVM是最吸引Redisson的点,它可以理解为用Java编写的嵌入式虚拟机,使得真正的跨平台和跨语言成为可能。
于是,Redisson开始了“逃跑之路”,实现了redisson-native。对于Java、Java+Warm UP以及Native三种方式的性能进行对比,能够看出redisson-native的性能具有明显的优势。
因此,这说明借助SubstrateVM逃离Java是非常好的解决方案,无需考虑JNI等相关问题,大部分操作只需要Java即可完成,学习成本较低,并且无需安装独立的JVM,生成文件也较小,云原生情况下性能较高,并且C调用非常简单。延伸开去,可以将Redisson带入到原生的二进制状态并进行二次封装,实现遍地开花。
基于企业级HBase的大数据存储与处理
阿里云智能事业群数据库产品事业部技术总监,Apache HBase PMC沈春辉(天梧)为大家分享了基于企业级HBase的大数据存储与处理。
进入大数据时代,数据量越来越多,数据种类也越来越丰富。数据量多这一点容易理解,而数据种类丰富则可以从三个维度来看:从静态维度,如今能够用数字化设备越来越多;从动态维度,设备、服务的运行状态越来越多;此外,还有数据再加工又产生了新数据,使得数据变得无穷无尽。面对这么多数量和种类的数据,如果没有价值就都是废墟。回顾这十年,大家对数据价值层面的认知越来越强烈,数据也越来越多地应用到生活中的各个场景。
随着对数据的应用,系统会面临很多挑战。大数据提出了“4V”,具体对于开发者而言,数据体量非常大意味着系统需要高扩展性;数据种类非常丰富意味着系统需要具有高灵活性,能够很好承载随时随地产生的新数据种类;数据时效性意味着系统具有高实时性,具有数据在线化能力;数据价值则意味着需要能够商业化,系统需要降低数据的存储和计算成本。
十多年前,Google首先遇到大数据问题,因此发表了Big Table论文。而HBase则是基于该论文设计的高可靠、高性能、可伸缩的开源大数据NoSQL系统。HBase放弃了对于关系型数据库事务的支持,重点构建扩展性能力、灵活性能力、实时响应能力以及对大体量数据存储低成本的能力。
阿里巴巴从2010年开始调研HBase,如今已经走过了近十个年头。随着这十年的逐步探索,阿里巴巴也丰富了HBase的使用场景,如消息,订单,Feed流,监控,大屏,轨迹,设备状态,AI存储,推荐,搜索,BI报表等。阿里巴巴自己使用HBase已经达到了非常大的体量和规模,也在产品上有了很多积累和沉淀,形成了如今云HBase+X-Pack的架构。单独依靠HBase数据库无法解决业务场景下的复杂问题,因此X-Pack基于云HBase在计算、检索、多模型上进行了扩展,包含了Spark、Phoenix、Solr以及OpenTSDB等,形成了稳定、易用、低成本的一站式大数据NoSQL平台。
云HBase+X-Pack架构实现了低成本的数据存储,将HBase运行在OSS上面,并且让整体接口模型复用HDFS能力。并且同时克服了OSS在面向文件场景下的问题,将原本面向对象的存储系统当做类似云盘来使用,使得存储成本降低3到7倍。此外,还基于HBase做到了一体化冷热分离,并使得业务无感知。
除了低成本存储之外,阿里云HBase还投入了大量的精力来优化性能。相比开源版本,阿里云HBase在各个性能指标上都有较大的提升。在这背后是不断的优化,如原本将基于HDFS Pipeline日志三副本转变向LLC机制,并将串行改为并行;将原本串行获取锁的方式变为并行;并且实现了10倍的Java GC优化。
最后一点,HBase属于大数据领域,必须结合很多组件,因此易用性也是大家最为迫切需要的。阿里云HBase实现了HBase和Spark的数据联动以及在线和离线的高效融合。此外,阿里内部也提供了一套易用的数据迁移系统,能够实现平滑在线搬迁。
无论是从稳定性、易用性还是性能和成本上来说,阿里云HBase都有很大的提升。未来,阿里云HBase还会通过共享块存储等技术进一步降低成本,也将会推出Serverless能力,并且会通过新硬件来加速计算,降低成本。
斗鱼直播从0到1混合云架构演进
斗鱼技术总监马勇为大家分享了斗鱼直播的混合云架构演进之路。
斗鱼直播成立于2014年,是以游戏赛事为主的直播平台,平台签约国内Top100主播约50位,覆盖游戏主播Top10中8位,月活达1.5亿,2019年Q1付费用户约600万。斗鱼主要有三条业务特点:头部主播热点效应,流量水位波动较大,以及在线互动场景较多。目前的技术现状是每天业务调用量在千亿左右,Redis实例集群达2000以上,单个接口QPS达20万以上。
斗鱼直播从2016年开始保持每年25%以上的月活增长,目前面对的技术困境主要有三点:(1)“炸鱼”,头部流量拖死全站房间;(2)服务器资源利用率低,日常水位大量服务器闲置;(3)Redis维护和容灾成本高。
斗鱼混合云架构历程主要分为三个阶段,在探索期做了独立业务上云的尝试;在成长期通过IDC+云的方式实现了横向流量扩容;在成熟期完成横向扩容之后实现对资源的最大化利用。
探索期的主要背景是IDC硬件资源呈现为长期紧缺状态,研发支撑跟不上业务发展,而公有云逐步成熟。因此在这一阶段,斗鱼尝试性选取了广告业务作为上云试点,并且取得了较大收益,系统的吞吐量直线上升,依赖稳定性显著提升,计算成本也大幅下降。但是这一模式的适用范围较窄,无法直接复制到其他业务场景,而且这一模式只适用于单一数据中心的情况,于是就进入了成长期。
成长期的背景是需要解决IDC到公有云的数据通道构建问题。针对这一问题,斗鱼和阿里云共同构建了RedisShake数据同步工具,支持了Redis全量、增量数据同步、支持云上、云下不同数据中心的同步,还支持秒级数据监控。通过RedisFullCheck实现了数据多维度对比,基本能保证数据通路的数据一致性问题。这一阶段的收益在于实现了单一机房到多机房的数据扩展过程。这个阶段存在存在两点有待改进,即资源调度成本比较高和资源缺乏精细化运营。
成熟期的主要优化方向是职责分离和弹性伸缩,优化方案包括四个方面,即流量分级、数据冷热分离、弹性伸缩和流量调度。其中调度策略包括了手动调度、定时调度、资源消耗调度和Hook调度。
对于混合云架构而言,斗鱼也总结了三点经验:
充分合理评估:云上计算网络与IDC差异较大,需要结合业务实际情况进行测试,避免产生影响。
投入产出比:混合云架构对资源冗余存在一定要求或者带来一定负面影响。
延时问题:企业应通过评估业务的重要性决定是否做混合云,虽然从数据中心到云有专线,但也存在一定延时。
Cassandra&X-Pack Spark云数据库技术剖析
阿里云智能高级技术专家曹龙(封神)为大家剖析了Cassandra与X-Pack Spark云数据库技术。
为什么选择Cassandra呢?Cassandra是一种完全没有中心的数据库,其每个节点都是主节点,如果Kill掉其中任何一个节点都不会影响集群的QPS以及延时。除了Cassandra使用的P2P-QUORUM机制之外,还有HA机制、Raft以及单内存副本+共享存储等机制,而只有Cassandra能够做到几乎没有感知时间,因此Cassandra的Slogan就是“Always Online”。
Cassandra能够实现平滑扩展,一方面可以增加节点数据量,甚至扩展多个DC。另一方面在云上还可以增加内存等。平滑扩展是Cassandra的重要特性,其他数据库往往难以做到。Cassandra还可以实现全球多DC,架构师可以根据业务自由适配。
对于学习成本而言,Cassandra提供类似于SQL语句的CQL,会MySQL的DBA或者开发人员基本上一天之内就能学会Cassandra。在安全方面,Cassandra和主流数据库一样提供了完善的认证以及鉴权体系。在多语言方面,Cassandra采用了非Thrift方式,采用客户端和服务端直连方式,并且支持主流的语言,并且具有良好的性能。最后一点,就是运维简单,Cassandra整体只有一个进程,没有Proxy、HA以ZK等角色节点。
Cassandra具有很多功能,比较特别的就是其索引支持物化视图、还支持SASI全文索引,并且集成了Lucene做更强的全文索引,以及支持CDC对接流式系统。
Cassandra的功能和生态比较丰富,其可以和其他组件进行搭配,比如Spark、Kafka、ES、Lucene、RocksDB等。
Cassandra在宽表领域排名全球第一,即使在国内缺乏宣传的情况下排名也是靠前的。Cassandra的发展目前已经经过了十年,其将AWS的DynamoDB和Google的BigTable两者的长处融合在一起形成的。阿里巴巴也在2019年公测并发布了阿里云Cassandra数据库服务,并且对原生的Cassandra进行了多方面提升,比如实现了自动化运维、兼容DynamoDB、全链路优化性能提升100%等。
总结而言,云数据库Cassandra版是在线可靠的NoSQL可调一致性的分布式数据库服务,支持类SQL语法CQL,提供强大的分布式索引能力,提供安全、多活容灾、监控、备份恢复等企业级能力,兼容DynamoDB协议。
X-Pack Spark不仅仅支持Cassandra,还能够支持HBase、Phoenix、RDS和MongoDB。X-Pack Spark不仅具有强大的连接能力和归档能力,还能够通过ElasticNode降低计算和存储成本。
Cassandra+Spark能够应用于非常广泛的业务场景中,比如用户画像、Feed、小对象存储以及推荐平台等。
总结而言,将Spark与Cassandra的优点结合在一起能够满足多种业务场景的需求,能够实现Always Online、扩展性强、好用、功能和生态丰富以及Spark数据闭环。