Dubbo优雅上下线

本文探讨了何为优雅上下线,如何避免应用停机时的常见问题,并以Dubbo为例,介绍了Spring ApplicationListener在实现优雅停机中的作用。

什么是优雅上下线
关于”优雅上下线”这个词,我没找到官方的解释,我尝试解释一下这是什么。

首先,上线、下线大家一定都很清楚,比如我们一次应用发布过程中,就需要先将应用服务停掉,然后再把服务启动起来。这个过成就包含了一次下线和一次上线。

那么,”优雅”怎么理解呢?

先说什么情况我们认为不优雅:

1、服务停止时,没有关闭对应的监控,导致应用停止后发生大量报警。

2、应用停止时,没有通知外部调用方,很多请求还会过来,导致很多调用失败。

3、应用停止时,有线程正在执行中,执行了一半,JVM进程就被干掉了。

4、应用启动时,服务还没准备好,就开始对外提供服务,导致很多失败调用。

5、应用启动时,没有检查应用的健康状态,就开始对外提供服务,导致很多失败调用。

以上,都是我们认为的不优雅的情况,那么,反过来,优雅上下线就是一种避免上述情况发生的手段。

Dubbo的优雅上下线
因为Spring中提供了ApplicationListener接口,帮助我们来监听容器关闭事件,那么,很多web容器、框架等就可以借助这个机制来做自己的优雅上下线操作。
如tomcat、dubbo等都是这么做的。

应用在停机时,接收到关闭通知时,会先把自己标记为不接受(发起)新请求,然后再等待10s(默认是10秒)的时候,等执行中的线程执行完。

那么,之所以他能做这些事,是因为从操作系统、到JVM、到Spring等都对优雅停机做了很好的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值