(摘自网络)

1、集群组网:

这是最基本的横向扩展的方式,把单节点的压力通过负载均衡分担到多个节点下,提高了系统负载能力的同时,亦提高了稳定性。同时针对具体的业务,规划子集群,并且做好物理/逻辑隔离。

2、反向代理:

一个大型的互联网网站不能不引入反向代理对静态资源的处理,Servlet容器用来处理静态图像和文本是非常奢侈的,Apache、Nginx、Squid都是优秀的解决方案。

3、页面静态化:

互联网应用“缓存为王”,这可能是数种方案中能带来惠利最明显的一种,通过静态页面的生成和访问,有效地降低了系统负载。Web2.0的应用缓存命中率通常要稍差。

4、数据库:

用户的访问难以满足了,数据库硬件设备的强化以外,从最基本的拆表、SQL调优,到纵向和横向的分库几乎成为必不可少的解决办法,或者更换廉价存储解决方案,使用NoSQL数据库。业务层面的读写分离等。

5、CDN:

CDN指的是内容分发网络,通过网络的广域层面对用户需求的分担,避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,提高用户体验。

6、缓存应用:

数据缓存通常包括持久层层面的缓存和外部接口调用的缓存,数据缓存可以减小各类I/O调用,增加用户响应的平均时间。 请求缓存,基于消息队列进行解耦,并实现消息的削峰填谷。

7、组件化:

其实就是已经过了风头的微服务化。

8、容灾能力:

包括极端流量下的多维度的限流降级策略。

服务分级:

不同级别的应用出错区别处理,保证关键业务。

超时设置

单个服务调用超时设置,避免后端阻塞导致服务不可用。

异步调用

对额外非关键逻辑采用消息队列进行异步调用,减少响应时间,增加吞吐量。

服务降级

服务高峰期时,随机拒绝部分用户,返回失败页面,避免所有请求涌入压垮服务;关闭非必要功能,节省系统开销。