Spring Cloud与微服务学习总结(10)——Spring Cloud 常见优化项的总结

  1. 用undertow替换tomcat,因为undertow是基于NIO非阻塞式请求。也可以用最新的tomcat8.5版本的NIO模式,当然使用场景也有区分,undertow完全支持webrocket,适合IO密集型请求的情况。
  2. Feign优化,用okhttp替换httpclient,原因主要是简单高效。有okhttp可以设置连接池,减少请求延迟,可以共享Socket,减少对服务器的请求次数,其他比如自动处理Gzip压缩,有缓存相应数据,减少重复请求。
  3. 可以在生产环境关闭Zipkin链路追踪,因为占用CPU很多。也可自己用消息队列方案自己实现。
  4. 代码逻辑优化,比如用消息队列优化业务逻辑,把异步处理的任务剥离出来,查询慢的地方,考虑用ES类索引服务。
  5. Nacos(阿里的方案)可以替换eruka,K8s集群有时会造成注册中心注册失败,nacos在性能和稳定性上都更优。
  6. redis缓存、ES索引
  7. 数据库的索引优化,数据库垂直分(微服务分库),读写分离,水平分,分布式数据库。(方案有ID求余分库,热点分库,分布式索引)
  8. 增加服务器,做负载均衡
  9. Hystrix线程池的大小和超时时间我们都是可以设置的,线上环境,我们需要对这些参数进行调整,该如何调整呢?假设你的系统B,预计QPS是30,每秒请求响应时间是200ms,那么可以算出30*0.2=6,然后再加点缓冲空间,比如4,那么总共就是6+4=10的线程数量,当然这个4你可以自己调整,这是为了防止突然增大的流量给个缓冲的余地。当然这个缓存增加的线程数量对设置超时时间是有参考意义的,比如上面我如果设置了10条线程,此时的超时时间该设置多少?并不是越多越好哦,应该是这么算:10/30=0.333,那么也就是在300ms左右,10是线程池数目,30是你预计的QPS。想象下,如果超时时间设为500ms,当很多请求都变为500ms时,也就是10/0.5=20,你的QPS变成了20,那么多余的请求就不会不断堆积,导致线程卡死,线程卡死后的恢复速度会是比较慢的,所以要合理设置线程池和超时时间
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付39.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值