原因及解决
一、业务逻辑太复杂,调用链路太长
- 优化代码or优化sql,或者用空间换时间
- 使用缓存或者消息队列,异步处理
- 并行调用几个没有依赖关系的服务
二、网络问题
- 调整传输协议
- 增加宽带,可以考虑走专线
三、访问量过大
- 调整负载策略,考虑设置权重,将服务器资源利用最大化
- 熔断降级或者补偿机制
案例
一、实践1
- 查询请求可以做缓存,失效时间短一点,减少调用频率;对于总是变化的数据,可以在服务提供方做本地缓存+redis缓存
- 写请求,可以考虑把耗时操作异步化,通过MQ
一、业务逻辑太复杂,调用链路太长
二、网络问题
三、访问量过大
一、实践1