对问题进行思考定位
分析:当一个用户访问服务器延迟很高,可能的原因有哪些?
- 服务器系统能力不足: 当用户量上升时导致服务器提供服务能力下降,数据处理时间冗余,导致用户延迟。
- 网络问题:是否因为用户距离服务器部署地的网络延迟很高,导致在链路上产生了延迟。
解决问题:
1. 服务器的系统能力不足:
(1): 需要分析系统的瓶颈在哪?一般系统的瓶颈都在于IO问题上和并发处理请求上。最大的问题可能都是在于IO阻塞。这里就需要去分析和解决IO阻塞的问题,像现在常用的模型都是用协程去处理耗时的IO操作提高并发处理IO的诉求,这里需要根据系统去定位解决。
(2): 数据是否可以分为冷热分离? 是否有最近一周或者一段时间数据访问量达到百分之九十而之前的数据很少被访问到。可以考虑将数据进行隔离存储。
2. 网络链路问题(本篇主要讲解这里的问题)
当出现网络问题可能都有以下几个问题:
- 用户和服务器部署地距离长,网络延迟高,丢包率高。
- 系统之间的网络调用次数过多导致网络延迟。
问题1: 链路问题
- 可以将热点的静态数据部署在CDN上,用户需要请求时,就近访问CDN进行数据的下发。
- 链路问题解决:可以在用户发出请求时,通过访问就近的云网络加速服务器来进行网络请求的加速。
- 介绍:在加速区域入口和源站区域出口,各部署一套转发集群,把长距离公网传输改为自建的内网传输,从而实现加速的效果。
通过就近访问加速服务入口,将请求进行链路优化,走内部的网络通道,然后经过网络出口访问服务器。
- 如果用户和服务器为短连接居多,那么我们可以思考是否可以将用户优化为长连接来减少建立连接造成网络耗时较多。