Java 是不是没有好的热部署方案?

2019-07-24 09:46:43 +08:00
 StarkWhite

像 Node,PHP 推代码到服务器就行了,Java 每次打 jar/war 包、停止旧服务、启动新服务,挺麻烦的,从启动到能访问还得等几分钟。

17280 次点击
所在节点    Java
118 条回复
StarkWhite
2019-07-25 12:01:37 +08:00
@lihongjie0209 当年 Mac 可是以不重启升级来作为比 Windows 好的一个宣传点呢
StarkWhite
2019-07-25 12:09:07 +08:00
@passerbytiny 哈哈,当年 Mac 可是以不重启升级来作为比 Windows 好的一个宣传点呢。
而且以前做不了,不代表现在做不了啊,技术是会升级的。
pursuer
2019-07-25 12:29:04 +08:00
@StarkWhite 没用过,不清楚,在不用 native 代码或其他 hack 技巧情况下,单 jvm 动态加载代码应该是要用 classloader 的,不然可能是开了多个 jvm
yingo
2019-07-25 12:39:05 +08:00
java 来讲,还是用灰度,蓝绿,滚动吧..
StarkWhite
2019-07-25 14:12:42 +08:00
@yingo 灰度、滚动都要多个服务,太麻烦了。蓝绿是啥?
StarkWhite
2019-07-25 14:14:26 +08:00
@pursuer 也是
momocraft
2019-07-25 14:16:52 +08:00
基本上,高可用性最现实的手段就是多服务了

如果多个服务都嫌麻烦,其实热更新对你的价值是什么呢
StarkWhite
2019-07-25 14:37:37 +08:00
@momocraft 省去打包、上传、重启服务等麻烦事。分析了下,热加载、热更新貌似比热部署更好,可以保留状态。
StarkWhite
2019-07-25 14:42:57 +08:00
@yingo 原来是新旧服务切换啊,哈哈,又学到了一个新名词~
misaka19000
2019-07-25 14:43:43 +08:00
@StarkWhite #108 想要简单就做自动化就行了
yingo
2019-07-25 14:53:16 +08:00
StarkWhite
2019-07-25 14:54:48 +08:00
@misaka19000 写脚本嘛?个人的项目不好去找运维大哥帮忙啊,自己学的话感觉又不划算
misaka19000
2019-07-25 15:03:52 +08:00
@StarkWhite #112 有发这个帖子的时间已经足够学会并且写好自动化部署了
StarkWhite
2019-07-25 15:32:47 +08:00
@misaka19000 大神带带我~
StarkWhite
2019-07-25 15:34:56 +08:00
@szq8014 直接 run 和部署不是一回事吧? 那个得装 maven,而且一旦退出 maven 线程,服务也停了。。。
StarkWhite
2019-07-25 15:35:26 +08:00
@Raymon111111 这个答案真是简单粗暴。。。
Weixiao0725
2019-07-26 09:15:31 +08:00
@pursuer 我觉得以 classloader 为单位的话,本质上和手动重启没啥区别。
CodeXx
2020-01-03 10:18:24 +08:00
@lastpass 老哥用的啥技术实现的

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

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

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

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

© 2021 V2EX