Spring Boot 2.0 你们是如何做到 0 宕机热部署的?

2019-04-15 23:44:11 +08:00
 waisir

Spring Boot 新手。正在学习中,新项目用到 Spring Boot,但在 0 宕机发布这个问题上有疑惑。

由于之前使用 PHP,发布流程中使用新版代码替换原有代码即可。

了解到 java 可以使用源代码、jar、war+tomcat 这几种方式运行。了解到有 spring-loaded 和 devtools 与热部署有关。(闻其名总感觉像类似像 webpack 中的 hot-reload...,仅限开发使用,用在生存环境会不会有性能问题?)

目前我使用的是 jar 包,每次发布需要中断约 15s 的时间(单机 1G+1Core)。我怀疑是我姿势不对,请不吝赐教。

10719 次点击
所在节点    Java
47 条回复
xfriday
2019-04-16 21:46:25 +08:00
k8s 单节点也可以滚动更新的,更新过程中旧副本集继续提供服务,更新完成并成功才切换到新副本集,如果失败自动回滚
Infernalzero
2019-04-16 23:26:50 +08:00
你想就靠单机解决这个问题的话就只能不用 spring 这套了,micronaut 那套就是为了优化这个问题,在编译时完成了依赖注入
qiyuey
2019-04-17 09:29:52 +08:00
集群的事情,不要靠单机解决
ricwang
2019-04-17 15:47:43 +08:00
docker 部署,nginx 做负载,起一个新版本的容器,正常后再 kill 原本旧版本的容器
我的处理方式
wizzer
2019-04-22 11:22:42 +08:00
自带运维中心,演示地址 https://nutzwk.wizzer.cn
zhaoxueqin248
2020-05-06 16:03:12 +08:00
@mind3x 单纯请教,就是以前看过 Nginx 就是单机 直接更换 sbin/nginx 二进制执行文件,新老 NGINX 进程替换, 来进行的 Nginx 升级。讲道理 ,Spring-Boot 应该从技术上也是是可行的吧?
Rorysky
2021-10-18 11:01:46 +08:00
@allanzhuo 有需要不停机的场景

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/555516

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX