SpringBoot项目--如何不停服更新应用?
admin
2024-04-17 00:57:50
0

原文网址:SpringBoot项目--如何不停服更新应用?_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍Java后端项目如何不停机更新服务。

        在生产环境中,一般都会每个服务部署多个实例。只要多于1个实例,就可以不停服更新应用。

不停服更新应用的作用

  1. 有需要紧急修复的bug时,不会影响用户使用。
  2. 可以做到随时上线,不需要等到晚上没有用户在用时才更新服务(可以减少无意义的加班😉)。

需求

        本文假设解决此问题:微服务user有两个实例:user1和user2,需要在保证user服务不中断的情况下更新user服务。

方案1:使用Nacos的权重功能

说明

Nacos可以配置实例的权重,如果权重改为0,则不会调到这个实例。

不停服更新应用的流程

  1. 将user1的权重设置为0
  2. 更新user1
  3. user1启动完毕后,恢复user1的权重为1,将user2的权重设置为0
  4. 更新user2
  5. 恢复user2的权重为1

注意

修改完之后,所有网关的请求都会转发到权重不为0的实例上边,但feign请求还是会到达权重为0的实例上边。

解决方法:需要修改feign的负载均衡器(ribbon或者loadbalancer),将其改为从Nacos获得实例,根据权重选择实例。

方案2:使用强制路由中间件

说明

此中间件支持强制将请求转发到指定的实例。见:router4j · 语雀

不停服更新应用的流程

  1. 将user2设置为强制路由
  2. 更新user1
  3. user1启动完毕后,取消user2的强制路由,将user1设置为强制路由
  4. 更新user2
  5. 取消user1的强制路由

相关内容

热门资讯

《龙珠超宇宙2》超蓝悟吉塔、黑... 第1页:展开悟空和贝吉塔的超蓝合体,宇宙最强战士——超蓝悟吉塔,终于可以加入到《龙珠超宇宙2》中啦!...
《饥荒》TGP版开服教程 TG... 第1页:TGP开服工具下载与令牌获取展开《饥荒》TGP版大家会建立服务器吗?今天就为大家带来了饥荒T...
《黑暗之魂3》DLC图文流程攻... 第1页:雪原(1)展开《黑暗之魂3》DLC图文流程攻略,包括全道具、武器、装备、魔法、咒术、奇迹以及...
《龙珠超宇宙2》破坏神比鲁斯超... 第1页:展开破坏神比鲁斯作为一个神秘的强大力量,其力量不可小觑,下面为大家带来《龙珠超宇宙2》破坏神...
《暴行》全方位上手指南 游戏系... 第1页:战斗专精展开《暴行》P社的新作大家喜欢吗?今天就为大家带来了暴行全方位上手指南,包括游戏系统...
打怪升级单机游戏有哪些介绍20... 孤身勇闯斩妖魔,静心刷级乐逍遥,打怪升级单机游戏,没有所谓的网络师傅不需要迎合他人的节奏,操作上也比...
哪些劲爆游戏值得玩2026 劲... 热血争锋寻刺激,百样玩法不重样之间驰骋新天地,欢聚同游,随心飞扬,各位都想要找那种比较有趣的劲爆游戏...
人气高的slg手游盘点2026... 运筹帷幄,决定胜负,谋定全局,定好乾坤,闲暇时光,想感受策略布局的快乐,slg手游大家可以在里面规划...
美女换装游戏哪些值得下载202... 裙裾缀彩添雅韵,指尖穿搭赴清欢,美女换装游戏从甜美的可爱到国风的那种温婉的感觉,大家可以随心挑选搭配...
驾驶游戏超真实手机版下载介绍2... 真实驾驶掌中握,无需出门享洒脱,驾驶游戏超真实手机版以极致真实感打破空间限制,让玩家足不出户便能体验...