SpringCloud应用无损下线实践

本文探讨了SpringCloud应用在下线过程中的请求损失问题,分析了服务有损下线的原因,提出了缩短轮询间隔和利用k8s的preStop钩子的解决方案,详细介绍了实现步骤,包括配置调整、接口安全加固,旨在实现应用无损下线。
摘要由CSDN通过智能技术生成

1、实践背景

现在java主流的微服务技术栈毫无疑问是SpringCloud,这也是经销商技术部微服务实践采用的技术栈。注册中心采用公司技术部的nacos。在SpringCloud实践中大家普遍遇到的问题是应用默认是无法做到无损下线的,需要更多的辅助措施才能得到无损下线的效果,本文主要分享我们团队解决应用无损下线的一些实践。

2、有损下线

有损下线指的是应用在下线过程中,部分请求没有被妥善处理,出现请求异常进而影响应用可用性,影响用户使用。有损下线原因分析:

损失原因1:springboot实例默认接收到停止信号TERM时,马上停止服务 。如下图

当springboot实例收到TERM信号立即关闭的时候,很有可能请求队列中还有请求,还有一部分正在处理的请求。如果立即关闭这些请求都会损失掉。

解决方案:在springboot 2.3版本以上,提供了优雅关闭(Graceful Shutdown)配置。如下:

<span style="color:#444444"><span style="background-color:#f6f6f6"><code><span style="color:#333333"><strong>server</strong></span>:     </code>
<code>  <s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值