一:扩容
Nignx构建的站点,随着业务的发展流量的增大。逐渐会遇到瓶颈。影响客户体验,一开始需要进行垂直扩容。来支持更高并发。
目标:通过扩容提升整体量
单机扩容
不改变架构、仅升级单台 Nginx 服务器的硬件 / 配置,快速提升并发承载能力,是流量初期增长的最优解,成本低、实施快,优先落地这一套即可解决大部分初期瓶颈。
堆积硬件达到瓶颈之后,不能无限增加硬件。这个时候需要考虑水平扩容
水平扩容
用集群化的方式向外释放服务能力,成本相对低一点。
## 细粒度拆分:分布式
1:数据分区
不同的数据拆分到不同的Nginx
2:上游服务SOA化
原生支持水平/垂直扩容,服务完成SOA之后,Nginx基于应用模块划分进行定向代理,这样更能提搞整体性能。
3:入口细分
1:浏览器
2:移动端原生App(物联网设备)
3:H5内嵌应用
基于入口细分之后,基于不同的入口,接入不同的Nignx。
数据异构化
数据拆分成多分存在在不同的系统当中。
1:多级缓存
客户端缓存:缓存在客户浏览器
CDN缓存
异地多活:缓存放到不同的机房和地区
Nginx缓存:Nginx也可以缓存数据,可以前置到Nginx(这个多少有点扯了,我们知道Nginx就可以了)
服务异步化
1:拆分请求(拆分多步骤,让客户分阶段去做。)
2:消息中间件(快速给响应,后台异步化处理。)
扩容原则
1:无状态原则
2:弹性原则
1:单机垂直扩容
计算上的瓶颈?网络上的瓶颈?磁盘io瓶颈?
云服务资源增加。
整机:IBM、浪潮、DELL、HP等
CPU/主板:更新到主流
网卡:10G/40G网卡(有些网卡内置芯片,数据包处理硬件层面进行处理,无序依赖操作系统)
磁盘:SAS(SCSI) 、HDD(机械)、HHD(混合)、SATA SSD、PCI-e SSD MVMe SSD
SSD应用场景
多副本机制冗余存储
系统盘+热点数据+数据库存储
HDD应用场景
冷数据存储(资源下载站中的电影片。)