发布新版本时如果直接 kill 进程,正在处理的请求会中断,数据可能不一致。优雅关闭让应用处理完当前请求再停止。
一、优雅关闭
server:shutdown:gracefulspring:lifecycle:timeout-per-shutdown-phase:30s二、手动降级
@ComponentpublicclassDegradeService{privatefinalMap<String,Boolean>degradeRules=newConcurrentHashMap<>();publicbooleanisDegrade(Stringkey){returndegradeRules.getOrDefault(key,false);}publicvoidenableDegrade(Stringkey){degradeRules.put(key,true);}publicvoiddisableDegrade(Stringkey){degradeRules.put(key,false);}public<T>Texecute(Stringkey,Supplier<T>supplier,Tfallback){if(isDegrade(key))returnfallback;returnsupplier.get();}}三、熔断降级
@RestControllerpublicclassDegradeController{@AutowiredprivateDegradeServicedegradeService;@PostMapping("/degrade/enable")publicResultVO<?>enable(@RequestParamStringkey){degradeService.enableDegrade(key);returnResultVO.success("已开启: "+key);}@PostMapping("/degrade/disable")publicResultVO<?>disable(@RequestParamStringkey){degradeService.disableDegrade(key);returnResultVO.success("已关闭: "+key);}}💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!每周更新 Java/Python/爬虫 实战干货,不让你白来。