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

在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,可支持十亿级别或更高数据存储。

  来源:投稿,作者:薛珂,Gleasy格子云办公平台,技术合伙人,有多篇论文发表在IEEE期刊,负责大小研发项目30余项,作为首发明人主持并申请国家发明专利20余项。

  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/3664.html

时间: 2024-10-25 03:17:07

高性能、高可用的分布式架构体系(转)的相关文章

非常不错的文章,囊括啦高性能、高可用的分布式架构体系所有名词

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

如何设计出高可用的分布式架构

在分布式架构中,SOA 和微服务架构是最常见的两种分布式架构,而且目前服务网格的概念也越来越火了,我们就先从这些常见的架构开始. SOA 架构解析 SOA 全称是:Service Oriented Architecture,中文释义为 "面向服务的架构". 它是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能. 各个服务通常以独立的形式部署运行,服务之间通过网络进行调用,架构图如下: 跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来说 ESB

36套精品Java高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,大型分布式电商项目实战视频教程

新年伊始,学习要趁早,点滴记录,学习就是进步! QQ:1225462853 视频课程包含: 36套Java精品高级课架构课包含:java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,架构设计,web安全,高并发,高性能,高可用,高可扩展,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,工作流,程序调优,负载均衡,Solr集群与应用,主从复制,中间件,全文检索,Spring boot,Spring cloud,Dubbo,Elasticsearch,Redis,ActiveMQ

39套精品Java从入门到架构师|高并发|高性能|高可用|分布式|集群|电商缓存|性能调优|设计项目实战|视频教程

精品Java高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,大型分布式电商项目实战视频教程   视频课程包含: 39套Java精品高级课架构课包含:java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,架构设计,web安全,高并发,高性能,高可用,高可扩展,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,工作流,程序调优,负载均衡,Solr

HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理. HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 二.Keepalived简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,

高可用负载均衡架构(1)

高可用负载均衡架构 1     前言 1.1  LVS介绍 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq): 1.1.1     静态调度 ①rr(Round Robin):轮询调度,轮叫调度 轮

MongoDB 高可用集群架构简介

在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. 转载自严澜的博文--<如何搭建高效的MongoDB集群> NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病. 高性能,Nosql通过简单的key-value方式获取数据,非常快速.还有

RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). K

CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

一.系统环境 实验拓扑: 实验环境: Vmware 9.01 + Windows 8 x64 企业版+8G内存 虚拟机步骤: 1.安装一台CentOS 6.3 x64主机,内存为1GB,网络为NAT模式,注意检查Vmware中EDIT菜单下Virtual Network Editor中VMnet8 2. 加电,安装系统.基础知识了,不再多说,注意:选择英文而不要选择中文,选择是Basic Server模式,系统名称:LVS-MASTER 3.安装系统后,用root用户登录进去,执行 ifconf