SpringCloud微服务瘫痪的现象与优化

当客户端有大量的请求同时到达,服务处理能力有限导致积压了大量的请求,随后上层服务的线程也随之阻塞,线程资源耗尽,上游服务瘫痪。具体的表现为,请求一直pending,对应的服务也不再能对外提供接口响应。

接下来是应对方式:

首先,要保证服务的稳定,就算请求积压也不能连累到上游服务,导致整个服务线崩塌。我们要采取服务保护措施:使用sentinel对服务进行保护,具体措施有:限流、熔断、降级、过滤等。

其次,要优化服务间的相互调用,即RPC远程过程调用优化:使用SpringCloud基于Feign组件实现的RPC通信;如果使用restTemplate或者HttpClient则需要优化其相关的参数;例如超时时间不宜过长,重试机制等。

最后,针对请求积压的问题从三个方面去优化:

1.尽量将客户端发送请求的资源减小、次数减少。这就需要前端进行资源压缩,接口设计优化,缓存,数据预热等手段。

2.增加单个服务处理请求的能力,有以下手段:增加tomcat配置(即优化tomcat);JVM调优;切换springboot内置servlet容器;减少服务IO;代码层面优化等等。

3.增加集群,增加服务实例,分散请求压力。

我暂时总结了这三点,肯定还有其他方面的优化,总之就一个宗旨,不要让硬件浪费,尽量让服务器成为瓶颈,而不是我们的软件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dong__xue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值