共计 803 个字符,预计需要花费 3 分钟才能阅读完成。
1. 概述
本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后总结了一些架构设计的原则。
2. 基本概念
在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:
分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如 Tomcat 和数据库分别部署在不同的服务器上,或两个相同功能的 Tomcat 分别部署在不同服务器上
高可用系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性
集群一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如 Zookeeper 中的 Master 和 Slave 分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性
负载均衡请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的
3. 架构演进
3.1 单机架构
以淘宝作为例子。在网站最初搭建时,应用与用户数都较少,可以把应用服务器和数据库部署在同一台服务器上。浏览器往 www.taobao.com 发起请求时,首先经过 DNS 服务器(域名系统)把域名转换为实际 IP 地址 10.102.4.1,浏览器转而访问该 IP 对应的应用服务器。如无特别说明,以下所有描述都使用 Tomcat 来代表应用服务器。
随着用户数的增长,应用服务器和数据库之间竞争资源,单机性能不足以支撑业务
3.2 第一次演进:应用服务器与数据库分开部署
Tomcat 和数据库分别独占服务器资源,显著提高两者各自性能。
随着用户数的增长,并发读写数据库成为瓶颈
4. 架构设计总结