架构演进过程如下:
单机架构
第一次演进:Tomcat与数据库分开部署
第二次演进:引入本地缓存和分布式缓存
第三次演进:引入反向代理实现负载均衡
第四次演进:数据库读写分离
第五次演进:数据库按业务分库
第六次演进:把大表拆分为小表
第七次演进:使用LVS或F5来使多个Nginx负载均衡
第八次演进:通过DNS轮询实现机房间的负载均衡
第九次演进:引入NoSQL数据库和搜索引擎等技术
第十次演进:大应用拆分为小应用
第十一次演进:复用的功能抽离成微服务
第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异
第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理
第十四次演进:以云平台承载系统
在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:
分布式:系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上
高可用:系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性