1. 程式人生 > 其它 >熱部署和熱載入

熱部署和熱載入

熱部署(Hot Deploy)

熱部署針對的是容器或者是整個應用,部署了新的資源或者修改了一些程式碼,需要在不停機的情況下的重新載入整個應用。

熱部署原理

熱部署是載入整個應用程式,包括執行需要使用到的各種檔案,比如 Jar 包,JS 或者 CSS 或者 html 等靜態檔案或者一些配置檔案等。我們以 Tomcat 為例,它首先校驗是否開啟了熱部署,並且發生了修改,它有一個後臺執行緒,定期進行 reload 檢測,如果檢測需要重新部署,即熱部署,則先停止,然後啟動,這期間會清理 session,清空記憶體。

熱載入(Hot Swap)

熱載入針對的是單個位元組碼檔案,指的是重新編譯後,不需要停機,應用程式就可以載入使用新的 class 檔案。

熱載入的原理

如果應用系統簡單的話,可以開啟一個單獨的執行緒,間隔時間內重新載入所有的 class 檔案。如果稍微大一點的話,需要考慮效能,儘量識別出哪些需要被熱載入,比如根據 class 檔案最新更新時間判斷等等。因為他不會清理記憶體嗎,所以有記憶體溢位的風險,所以成熟的熱載入軟體或者系統都會有對應的方案來處理。