Davids原理探究:Dubbo优雅停机原理

当接收到kill -9信号,Spring容器销毁事件启动,Dubbo provider取消服务注册,consumer获取更新的服务列表并标记不可用。服务端等待现有任务完成并拒绝新任务,最后断开TCP连接。Dubbo 2.6.3修复了优雅停机的某些问题,避免了Spring和Dubbo钩子并发执行时可能导致的资源访问错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo优雅停机原理

在这里插入图片描述

关注可以查看更多粉丝专享blog~

Dubbo优雅停机原理解析

  1. 收到kill -9进程退出信号,Spring容器会触发容器销毁事件。
  2. provider端会取消注册服务元数据信息。
  3. consumer端会收到最新的地址列表(不包含准备停机的地址)。
  4. Dubbo协议会发送readonly事件报文通知consumer服务不可用。
  5. 服务端等待已经执行的任务结束并拒绝新任务执行。
  6. 最后provider与consumer断开TCP连接。

注册中心已经通知了最新服务列表,provider还要发送readonly报文的原因是,注册中心推送服务可能会由网络延迟,客户端接收和计算服务列表可能占用一些时间。Dubbo协议发送readonly报文时,consumer端会设置响应的provider为不可用,下次负载均衡的时候就不会调用下线的机器了。

Dubbo2.6.3以后修复了优雅停机的一些bug,之前版本中没有做到完全的优雅停机的原因是,Spring和Dubbo都注册了JVM停止的钩子,这种场景下两个线程并发执行的时候可能引用一些销毁的资源,比如Dubbo正在执行的任务需要引用Spring中的Bean,但

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值