Warning: get_meta_tags(https://blog.csdn.net/sufu1065/article/details/106866462/): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /www/wwwroot/www.panziye.com/wp-content/themes/Git-alpha/include/shortcode.php on line 302
文
章
目
录
章
目
录
昨晚在闲鱼上有个做游戏开发的咨询实现Java热更新,无奈潘老师之前没做过,只能直言“不做”,别问为啥,问就是“我也不会” 真是书到用时方恨少啊,于是立马就来研究下什么是Java热更新?
一句话说明白什么是Java热更新?
在不重启服务器的前提下对项目代码实现局部更新与替换,称为热更新
Java热更新这个需求主要来源于以下两个场景:
(1)线上代码出现bug,可能需要追加打印日志或者增加一些调试代码,如果我们去改代码重新部署,会破坏问题现场,可以通过热部署的手段来增加调试代码
(2)线上出现紧急bug,通过Review代码找到问题,修改好后打包部署的流程可能比较久,可以通过热部署代码及时解决问题
使用什么技术实现Java热更新?
一般有两种技术手段可以实现Java热更新,一种是agentmain
,一种是使用阿里巴巴的开源框架Arthas
,Java潘老师更建议使用框架解决,毕竟Arthas(阿尔萨斯)是 Alibaba 开源的一款 Java 诊断工具,使用它我们可以监控和排查 Java 程序,而且它还提供了非常实用的 Java 热更新功能。相对而言,使用起来更方便,避免重复造轮子!
具体的使用方法可以参考这一篇博文,写的很不错:
果然还是要多学东西啊,知识就是财富,虽然在目前我的工作中Java热更新这种技术基本不用(在游戏行业用的较多,毕竟停服不仅影响用户体验还少赚钱),但了解下还是很好处的,继续努力吧!