开发者社区> 问答> 正文

[@talishboy][¥20]分布式系统中,java的线上项目能否使用classLoad等技术通过线上替换class文件实现热更新?

这种场景,我有一个spring boot 项目A打成jar包,部署在 a,b,c,d三台服务器中,现在发现项目A中一个class存在bug,设想是不重新发布代码,而是使用classload技术实现线上代码的替换来解决bug,问一下现在可以实现吗或者有成熟稳定方案实现吗

展开
收起
月下丶 2018-12-14 21:41:45 2787 0
2 条回答
写回答
取消 提交回答
  • 可以但是不推荐,如果系统是无状态的,并且没有复杂的依赖关系,是可以替换运行的类实例的。但是实际情况比这复杂得多。如果你要替换的类正在使用外部资源怎么办?如果他开启了线程怎么办?如果他在读文件或者访问网络怎么办?要解决这些问题付出的精力,很多时候还不如简单的替换jar包-重启来得快

    2019-07-17 23:21:36
    赞同 展开评论 打赏
  • 参考下osgi

    2019-07-17 23:21:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载