`

高性能、高可用的分布式架构体系

 
阅读更多

在2B企业服务、云计算、移动互联网领域,专业的云平台服务里,分布式技术为支撑平台正常运作关键性技术。从商业利润和运维成本角度出发,千方百计榨干服务器的每一分性能很大程度上影响着网站的商业价值,因此对性能的追求,成为分布式架构体系中极为重要的考量指标;从用户角度,特别是作为主要收入来源的企业用户的角度出发,保证业务处理的正确性和服务不中断(高可用性)是支撑用户信心的重要来源。高性能,高可用,正确性成为分布式架构体系的关键技术因素。

  对于网站产品的的架构体系,可以选择开源或自主研发;如果拥抱开源,则首个开发周期可能会缩短1/3左右,但付出的代价是要深入吃透这些开源方案为我所用,必要时还得修改源代码,这后面的代价很难估计,另外还存在一项风险就是万一选用的开源方案在将来才发现某一些特性不满足,就得推倒重来;如果自主研发,则项目的开发周期会相应延长,而且似乎有重复造轮子的嫌疑。对于开源工具来说,重要开源工具主要包括有Zookeeper,Solr,Openfire,Redis(在它基础上研发分布式NOSQL数据库集群),Nginx,Haproxy,Keepalived,MySQL(在它基础上研发的ShardDB);而自主研发的分布式中间件则包括分布式文件系统(Cloudfs),分布式即时通讯(CloudIm),分布式消息队列(CloudMQ),分布式任务调度(CloudJob),分布式检索平台(CloudIndex),分布式NOSQL数据库集群(CloudRedis)。

  分布式文件系统(Cloudfs):反复研究HDFS,TFS,Gridfs(Mongodb),FastDFS基础上研发出来的分布式文件系统。存储架构与FastDFS相似,包括数据结点(Node),数据组(Group),分区(Region)三级;数据结点(Node)为最终物理存储结点,相同数据组(Group)的不同结点会进行实时的数据同步,即同组的结点数据最终一致;?相同分区(Region)内的文件会自动去重,即相同内容的文件在同一个分区(Region)只会有一份。Cloudfs通过使用消息队列(CloudMQ)进行同组结点间的数据序列同步,从而保证最终一致性,这一点跟FastDFS的binlog双向同步最为相似。Cloudfs使用Zookeeper来监测存储结点状态维护和变更,使用CloudRedis存储文件索引信息,使用Nginx作为文件下载服务器。性能优秀,单台Server线上监测得到的数据,文件上传的IOPS可以达到1200,上传速率达到25MBps,复制文件TPS达到9000以上,创建和删除文件的TPS达到30000以上。支持存储结点的动态加入和退出,支持线上扩容,数据多备份,结点动态负载均衡,最大理论可支持文件数量达千亿以上,支持结点数3000以上。

  分布式即时通讯(CloudIm):承载着推送服务的平台级中间件。基于Openfire,但除了保留其基本的连接保持和结点间通讯能力外,几乎进行了全新的改造。CloudIm提供了方便的API给第三方应用,开发者可以使用CloudIm的API轻松地实现消息即时推送(从而实现例如即时通讯,协同办公,即时提醒等实时功能),而不用考虑长连接保持,线路故障,服务器负载,用户状态变更通知等繁复的要求。CloudIm性能优秀,其提供的全部API的TPS都介于15000-35000之间。单台服务器线上实测可保持连接数超过7万,消息延迟低于50MS,集群可支持上千结点。支持结点动态加入或退出,支持线上扩容。

  分布式消息队列(CloudMQ):一种分布式的消息队列(MQ)实现方案,设计原理参考了Apache的开源项目Kafka及淘宝的开源项目MetaMorphosis,承继了分布式及高性能高吞吐量的特性。CloudMQ实现简单,无Broker设计,可保持消息顺序,采用纯PULL加通知机制几乎避免了消费延迟,采用多分区机制保证提高系统的吞吐量,最大消息数量为数十亿级别,另外还支持延迟消息(比如5分钟之内发生100次更改事件,只推送一次最终结果,大幅减少重复消息)。生产消息TPS介于35000-45000之间,消费消息的TPS为40000左右。

  分布式任务调度(CloudJob):将任务按特定规则(负载均衡,地域原则等)分配到多个结点执行的调度框架。支持Crontab标准的任务重复和定时策略,支持海量定时任务(千万级),保证任务处理的实时性和顺序性,支持实时查询任务状态或中止任务。任务调度吞吐量可达2万每秒。

  分布式检索平台(CloudIndex):海量实时检索系统,承载着分词检索任务。主要采用Solr和CloudMQ实现,使用CloudMQ保证更新性能以及保证集群结点获得相同的更新序列,使用Solr实现分词及实时检索。支持索引分片(分片规则包括HASH法及数字区间法),自定义分词,结点负载均衡。索引读写延迟小于200MS,单一索引的数据规模可以达到上亿级别。

  分布式NOSQL数据库集群(CloudRedis):基于Redis研发的数据库集群,兼容Redis的全部数据结构及大部分的命令集合。由客户端使用一致性HASH算法将请求按照KEY的HASH请求到集群内不同结点执行,使用binlog操作序列同步方式来保证不同服务结点的数据最终一致性;当服务结点变更时,客户端主动发现结点变更,重新计算HASH,集群内其它服务结点获知结点变更,保证binlog已经消费完毕的情况下才继续提供更新服务,从而保证结点变更情况下的数据一致性。性能极为优秀,非批量操作读写命令可达到10万每秒以上处理速度,超越了原生Redis,可支持十亿级别或更高数据存储。

分享到:
评论

相关推荐

    大型分布式网站架构设计与实践.带目录书签.完整版.rar

    分布式架构的核心思想是采用大量廉价的PC Server,构建一个低成本、高可用、高可扩展、高吞吐的集群系统,以支撑海量的用户访问和数据存储,理论上具备无限的扩展能力。分布式系统的设计,是一门复杂的学问,它涉及...

    高性能Web架构之缓存体系.pdf

    速云科技赵舜东在GOPS2017全球运维大会上做了主题为《高性能Web架构之缓存体系》的分享,就Web缓存知识体系,Buffer与Cache详解,DNS与浏览器缓存,CDN与反向代理缓存,Web服务器与分布式缓存,数据库与操作系统缓存...

    分布式系统架构的基本原则和实践

    应用的大访问、高性能要求3.应用的高可用要求,故障转移分布式系统遵循几个基本原则CAPTheorem,CAP原理中,有三个要素:1.一致性(Consistency)2.可用性(Availability)3.分区容忍性(Partitiontolerance)CAP原理指的...

    亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构

    4、多机房部署架构下的4级缓存架构:大公司里真实的亿级流量高并发系统,都是采取了多个机房的部署架构,以实现高可用以及异地灾备。课程会重点讲解,在多机房部署架构下,如何设计和实现高并发系统的4级缓存架构。 ...

    基于云计算和大数据技术的数据交换平台白皮书v4.pdf

    运行在分布式Hadoop架构上的易达讯云交换平台可以在普通商用服务器建 立不同规模的集群,提供低成本但却拥有高可靠性、高性能、高扩展性和高吞吐 的数据交换和处理能力。强大的管理与监控系统和安全支撑系统,实现对...

    蚂蚁架构师第3期并发编程设计模式分布式性能优化视频教程

    蚂蚁架构师之并发编程设计模式与分布式性能优化视频教程 java架构师视频教程推荐,真正的轻量级架构体系,学习java你不可或缺,java自学网作为国内顶尖的java学习论坛社区,专注提供高质量,含金量的视频教程!...

    大型分布式网站架构与实践

    第1章 面向服务的体系架构(SOA) 1  本章主要介绍和解决以下问题,这些也是全书的基础:  HTTP协议的工作方式与HTTP网络协议栈的结构。  如何实现基于HTTP协议和TCP协议的RPC调用,它们之间有何差别,分别适应...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    ArchSummit北京 2016年全球架构师峰会PPT合集(84份).zip

    网格社区:技术架构体系演进 配送实时物流调度平台实践 LBS系统架构实践 移动CDN及直播性能优化 构建高效的私有云平台:私有云架构设计 构建大规模微服务架构应用 容器技术与微服务架构在跨境电商领域的集成实践 ...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    03-大规模集群架构中MySQL高可用的位置和架构mp4 04-MySQL高可用实战模拟环境描述mp4 05-MySQL高可用生产场景配置及网络地址规划mp4 06-MySQL高可用实施正式环境准备与裂脑注意mp4 07-快速安装双机Centos6.4下...

    ArchSummit深圳 2017年全球架构师峰会PPT合集(73份).zip

    一站式构建轻运维高可用架构 巡风系统在同程运维安全的实践 新一代行情系统架构与优化 外卖原生广告推荐实践 数字化平台战略下的IT组织和人才战略 数据驱动电商的零售运营 数据平台实践 数据平台融合实战 手机卫士...

    SACC2021年中国系统架构师大会PPT合集(71份).zip

    数据强一致和高性能,分布式系统FastCFS如何做到的? 腾讯云分布式对象存储架构设计与实践 腾讯云原生数据库架构探索与实践 Android平台化架构设计及自动化解决方案 MQ高可用架构实践 大数据海量任务调度和智能运维...

    云计算架构上高光谱数据的并行和分布式降维

    我们的实现利用Hadoop分布式文件系统(HDFS)来实现分布式存储,使用Apache Spark作为计算引擎,并且是在基于map-reduce并行模型的基础上开发的,充分利用了Hadoop高吞吐量访问和高性能分布式计算功能。云计算环境...

    SpringCloud共享模式下的个性化商品交易平台设计与实现

    为能够应对海量移动互联网用户的访问需求,以及用户使用环境的变化,采用分布式架构,利用目前成熟的 Spring Cloud 微服务体系进行平台的开发,能够满足平台性能要求,增加业务的可拓展性。微服务的设计实现。为便于...

    基于win10 x64的emqx 服务端

    1、大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器,高效可靠连接海量物联网设备,高性能实时处理消息与事件流数据,助力构建关键业务的物联网平台与应用。 基于 APL 2.0 开放源码协议 完整 MQTT 3.x 和 5.0...

    3.springBoot

    Spring Boot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用。Spring Boot框架降低了Spring技术体系的使用门槛,简化了Spring应用的搭建和...

    23讲搞定后台架构实战.txt

    第二模块~第四模块:深入实战案例,解读如何构建高性能的读服务、高可用的写服务、高并发的扣减服务三大模式。 每一类均以循序渐进的方式,先介绍满足基础要求的架构方案,再随着需求增多,进行架构方案升级,并...

    kudos:​​Kudos是一个基于微服务体系结构的简单,高性能,易于扩展和易于部署的分布式游戏服务框架,它基于rpcx的RPC,支持pomelo通信协议,可以轻松地应用于游戏开发

    荣誉Kudos是一个基于微服务体系结构的简单,高性能,易于扩展和易于部署的分布式游戏服务框架,它基于rpcx的RPC,支持柚通信协议,可以轻松地应用于游戏开发。产品特点-易于使用:游戏开发需要将基本组件和服务集成...

Global site tag (gtag.js) - Google Analytics