互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。
1. 垂直扩展:
提升单机处理能力。
垂直扩展的方式又有两种:
(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;
(2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
2.水平扩展:
只要增加服务器数量,就能线性扩充系统性能。
常见互联网分布式架构及扩展方式:
(1)客户端层:典型调用方是浏览器browser或者手机应用APP
(2)反向代理层:系统入口,反向代理——>DNS轮询,增加多个ngnix。
(3)站点应用层:实现核心应用逻辑,返回html或者json——>ngnix负载均衡,增加多个后台服务器。
(4)服务层:如果实现了服务化,就有这一层——>服务连接池,增加服务器数据,建立多个连接池。
(5)数据-缓存层:缓存加速访问存储——>数据库分库分表,分表又分为水平拆分和垂直拆分。另外还可以做成集群,主从架构、读写分离等。
(6)数据-数据库层:数据库固化数据存——>缓存分片、主从架构、读写分离等。