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)。我怀疑是我姿势不对,请不吝赐教。

10469 次点击
所在节点    Java
47 条回复
huijiewei
2019-04-16 09:54:01 +08:00
nginx 后面跑 2 个 jar 实例 热切换
allanzhuo
2019-04-16 09:55:59 +08:00
生产环境热部署,真的是不怕死啊
keymao
2019-04-16 10:38:05 +08:00
单机热部署啥... 多个负载 切换一个 更新一个呗... 轮换着来 业务就不会停了...
chendy
2019-04-16 10:42:54 +08:00
前面放一个反代,启动新节点,启动之后把流量切过去就行了
不过 1c1g 的配置也没多大的量吧,停一会就停一会吧…
zifangsky
2019-04-16 11:13:58 +08:00
不要问,问就是:PHP 是世界上最好的语言!
hantsy
2019-04-16 11:24:43 +08:00
You should consider applying blue-green pipelines with DevOps.

It is an issue of the languages/frameworks you are using, you have to envolve your development progress.
LokiSharp
2019-04-16 11:46:41 +08:00
多节点负载均衡
gscoder
2019-04-16 11:50:32 +08:00
集群部署呗。。开发模式下那种热更新浪费性能,没有用在生产环境的。你说的这种只有脚本型语言才做得到,比如 php
loveCoding
2019-04-16 11:52:10 +08:00
nginx 反代两个 jar 实例端口就行
abcbuzhiming
2019-04-16 11:57:27 +08:00
我就说很多人误以为 PHP 不需要编译,所以就能热部署了。实际上你们这种玩法就是错的。根本达不到真的热部署的要求
hahaayaoyaoyao
2019-04-16 12:31:26 +08:00
@abcbuzhiming 是的
luozic
2019-04-16 13:00:25 +08:00
冗餘 (網關 app 容器 數據庫)+ 分佈式并發控制架構才有 不停機更新,其他的估計是’自以爲“的不停機更新。
ala2008
2019-04-16 16:35:29 +08:00
负载均衡
yc8332
2019-04-16 16:50:32 +08:00
其实楼主的意思就是不停机部署。。。单机应该是不可能,不然就是单机起两个,不同端口,启完了再切过去新端口
coolzilj
2019-04-16 17:58:47 +08:00
你们吓得楼主都不敢出来说话了
waisir
2019-04-16 18:03:20 +08:00
@coolzilj。。。

非常感谢各位的回答,答案已经很清晰了。
freedomshi
2019-04-16 19:38:26 +08:00
还是 php 最好。。。
a663
2019-04-16 19:49:25 +08:00
k8s
hillMonkey
2019-04-16 19:53:26 +08:00
Portainer + Swarm
rffan
2019-04-16 21:26:54 +08:00
没办法单节点热部署,无论如何都得重启 tomcat 等容器。

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

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

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

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

© 2021 V2EX