高并发系统的设计要点
以下为自己总结的关于高并发系统的设计要点,为大家提供一个思路,如果有不对的地方和没想到的地方,请为大家指正和补充,非常感谢。
1.前端方面
- 减少http请求
http请求的开销都很昂贵,应该尽量减少http请求次数。主要手段是将javascrit,css,图片
合并成一个文件,这样浏览器只需一次请求。 - 使用浏览器缓存
对网站而言,css,javascript,logo,图标这些资源更新频率低,可以设置http头中的Cache-
Control和Expires属性将其缓存在浏览器中。 - 启用压缩
对http请求开启Gzip压缩,文本文件的压缩效率可达80%以上,因此HTML,CSS,Javascript文
件启用GZip压缩可以达到较好的效果 - CDN加速(动静分离)
CDN(内容分发网络)本质仍是一个缓存,而且将数据缓存在离用户最近的地方,使用户以最
快速度获取数据。一般缓存静态资源。
2.后端方面
- 服务拆分、集群部署
- 缓存、热点数据处理
- 异步MQ,削峰
- 分库分表
- 读写分离
- ElasticSearch分布式复杂搜索
- 线程池、异步回调
3.服务/接口/架构
- 负载均衡 nginx keepalived lvs
- 限流(排队,分层过滤)
- 熔断、降级
- 预热warmup(加载缓存、热编译代码)