在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,可支持十亿级别或更高数据存储。
相关推荐
在金融领域,特别是银行行业,分布式架构能够提供更高的性能、可扩展性和可靠性。 对公存款账户体系是指银行针对企业及其他非个人客户的存款账户系统。这些账户不仅记录资金的流动,也是银行获取稳定资金来源的重要...
单品页是电商网站中非常重要的页面之一,需要具备高性能、高可用的特点。 - **京东购物车技术解密** 购物车是用户购买商品的关键环节,需要支持快速响应、数据一致性等功能。 综上所述,本内训方案涵盖了高可用...
分布式架构基础讲义是IT领域中的重要学习资料,它涵盖了多个关键知识点,旨在帮助读者理解和掌握构建大规模、高可用的系统所需的技术与理念。以下是这些主题的详细解析: 1. **分布式架构**:分布式架构是一种将...
当前主流的分布式架构体系主要包括微服务架构和应用分层架构两种类型。 1. **微服务架构**:强调将复杂的单体应用拆分为多个独立的服务模块,每个模块负责一部分业务逻辑,通过API接口进行交互。这种方式有利于提高...
分布式架构技术是现代互联网服务的核心组成部分,随着互联网...总之,分布式架构技术是构建大规模、高性能互联网应用的基础,通过深入了解和掌握这些关键技术,并解决随之而来的挑战,可以构建出更健壮、更高效的系统。
例如在“双十一”等高并发场景下,采用分布式架构的系统能够处理超过7万笔/秒的交易峰值,显示出其在处理高并发事务方面的显著优势。 商业银行核心系统向分布式转型的技术选型,通常依赖于稳定成熟且具有一定内核...
分布式架构知识体系必读 分布式架构是现代大型互联网系统的核心组成部分,它允许应用程序在多台计算机之间分散工作负载,以提高可伸缩性、容错性和性能。微服务架构是分布式系统的一种具体实现,强调将应用程序拆分...
此外,分布式架构还需要与底层基础设施解耦,以便采用PC服务器进行横向扩展,满足高性能处理需求。 数据分布设计是分布式架构中另一个关键点,主要目的是突破传统数据库单机处理能力的瓶颈。数据分布可以通过数据...
因此,构建高可用、高性能的分布式数据库系统成为了现代互联网企业的重要课题之一。陈吉平在《高可用分布式数据库系统架构实践》这一演讲中,分享了淘宝网如何应对这些挑战,并逐步演进其数据库架构的过程。 #### ...
- **Dubbo**是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:**面向接口的远程方法调用**、智能容错和负载均衡以及服务自动注册与发现。 - **RPC(Remote Procedure Call)**:远程过程调用是一种...
### 分布式架构知识点解析...通过合理的设计和实施,分布式架构能够显著提升系统的可用性、可伸缩性和性能,满足日益增长的业务需求。对于开发者而言,深入理解这些概念和技术细节对于构建高质量的分布式系统至关重要。
3. **容错机制**:Map-Reduce架构内建了容错机制,当某个节点出现故障时,任务可以被重新分配到其他节点,保证了系统的高可用性和稳定性,这对于安全要求极高的信号系统尤其重要。 4. **就近冗余存储**:分布式文件...
高性能路由器的分布式体系结构是构建高效、稳定且可扩展网络基础设施的关键技术。随着技术的快速发展和网络的日益复杂,路由器的技术需求也在不断演变,尤其是在安全性和处理能力方面。本文主要探讨了高性能路由器的...
在分布式架构中,Serv-U可以部署在多个服务器上,以提供高可用性和冗余性,从而提高文件传输的可靠性和安全性。 在多级架构中,Serv-U可以部署在不同的服务器上,以提供冗余性和高可用性。例如,Serv-U Gateway可以...
### Spring Cloud 的分布式架构体系 #### 一、Spring Cloud 在微服务架构中的作用 Spring Cloud 是基于 Spring Boot 实现的一套完整的微服务解决方案。它不仅仅是一个框架,更是一系列框架的有序集合,提供了构建...
根据提供的标题、描述以及部分内容,本文将围绕“分布式架构存储实践”这一主题展开,并深入探讨分布式存储中的关键概念和技术。 ### 分布式架构存储实践 #### 概览 分布式存储系统是通过网络连接多台计算机共同...
在当前快速发展的互联网行业中,电商系统的高...课程的每个部分都紧密结合实际应用,为学习者提供了一套完整的知识体系和动手实践的机会,使其能够更好地理解和掌握高并发大型电商详情页系统的高性能与高可用缓存架构。
4. 分布式架构体系组成:分布式架构体系由多个处理器或计算机系统组成,可以是物理上相邻或分散的。物理上相邻的系统通过共享主存或计算机内部总线进行通信,而物理上分散的系统则通过网络进行消息传递。分布式架构...
2. 分布式架构成为金融科技的发展趋势:分布式架构相比于传统的集中式架构(如IOE体系),具有更高的价格成本效益、自主研发能力、灵活兼容性和伸缩扩展性。在分布式架构中,应用被拆分成独立的小模块,在x86/ARM...