java - Spring Boot 热重载
问题描述
我正在使用弹簧靴并使用胖罐进行生产,这很酷。
但是,我部署的方式强制应用程序在重新部署时关闭大约 15 秒,因为我必须杀死正在运行的 jar 并启动新的。我还没有找到任何解决方案,即如何在不重新启动的情况下重新加载新的 jar。
是否可以“热重新加载/替换” jar 或者我必须在容器中运行,如 tomcat,并部署战争?
请注意,它正在生产中,所以我猜 dev-tools 是不可能的。
解决方案
我猜这是更多的基础设施问题。您可以创建运行您的应用程序的第二个“保留”实例。当您在主实例上更新您的应用程序时 - 所有用户请求都必须重定向到第二个“保留”实例。重新部署完成后 - 您再次将请求重定向到主实例。然后在保留实例上重新部署应用程序。例如,Nginx 可以帮助您进行这些重定向。
推荐阅读
- javascript - 如何在 Sequelize 中生成 12 位唯一 ID?
- javascript - 字符串连接 object.values 其中 object.key 等于条件
- java - 在 JTable 中单击鼠标,图像在 JLabel 中不可见
- swift - 有条件地符合 Set 到 ExpressibleByDictionaryLiteral 协议
- python - 在python函数中将值与文本组合
- xml - SerializationFeature.WRITE_DATES_WITH_ZONE_ID 没有给我预期的结果
- python - Edge webdriver 在 SharePoint 网站上找不到对 Firefox 驱动程序可见的元素
- javascript - 如何使主菜单中的滚动链接仅在单击时处于活动状态?
- c++ - 向 C++ 项目添加 nuget 包会在构建时出现 LNK2001 错误
- python - 解释相对于定义的世界坐标的旋转矩阵