天天看點

熱部署與熱加載的差別

      在應用運作的時更新軟體,無需重新啟動的方式有兩種,熱部署和熱加載。對于Java應用程式來說,熱部署就是在伺服器運作時重新部署項目,熱加載即在在運作時重新加載class,進而更新應用。

      熱加載的實作原理主要依賴java的類加載機制,在實作方式可以概括為在容器啟動的時候起一條背景線程,定時的檢測類檔案的時間戳變化,如果類的時間戳變掉了,則将類重新載入。對比反射機制,反射是在運作時擷取類資訊,通過動态的調用來改變程式行為;熱加載則是在運作時通過重新加載改變類資訊,直接改變程式行為。熱加載可以極大地提高開發效率。

      熱部署原理類似,但它是直接重新加載整個應用,這種方式會釋放記憶體,比熱加載更加幹淨徹底,但同時也更費時間,這種情況會造成session丢失的情況。

繼續閱讀