淘宝 10 年,高并发分布式架构演进之路
大家好,我是楼仔!
之前给自己定了一个学习计划,今年上半年需要完成“高并发”系列文章,这个是该系列的第一篇。
在写“高并发”系列文章之前,我觉得有必要让大家对高并发分布式架构有一个整体的认识,给大家搭建一套高并发的知识体系。

这套体系涉及的技术点非常多,不限于熔断、流控、异步、池化、背压、负载均衡、主从分离、读写分离、缓存雪崩、缓存穿透、数据一致性、注册中心、配置中心、微服务等。
后面的系列文章,会根据这套体系涉及的知识点去讲解,当整个系列全部完成后,我会出一套高并发手册。
这篇文章是转载过来的,“高并发”的第一篇本来打算自己写,后来发现这篇写的非常不错,所以就没有单独写的必要,支持原创:
- 原文作者:huashiou
- 原文链接:https://segmentfault.com/a/1190000018626163
概述
本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则,架构演进过程如下:
- 单机架构
- 第一次演进:Tomcat与数据库分开部署
- 第二次演进:引入本地缓存和分布式缓存
- 第三次演进:引入反向代理实现负载均衡
- 第四次演进:数据库读写分离
- 第五次演进:数据库按业务分库
- 第六次演进:把大表拆分为小表
- 第七次演进:使用LVS或F5来使多个Nginx负载均衡
- 第八次演进:通过DNS轮询实现机房间的负载均衡
- 第九次演进:引入NoSQL数据库和搜索引擎等技术
- 第十次演进:大应用拆分为小应用
- 第十一次演进:复用的功能抽离成微服务
- 第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异
- 第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理
- 第十四次演进:以云平台承载系统
特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径。
基本概念
在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:
- 分布式:系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上
- 高可用:系统中部分节点失效时,其他节...
热门评论
9 条评论
回复