座標:浙江省杭州市
概述:鄙人才疏學淺,了解到不停機部署方案有熱載入、熱部署、集群分批部署三種方式,這裡只針對這三種方式進行討論。
一、熱載入
原理:熱載入的實現原理主要依賴jvm的類載入機制,在執行時對被修改過的類進行重新載入。
實現方式:在容器啟動的時候起一條後台執行緒,定時的檢測類檔案的時間戳變化,如果類的時間戳變掉了,則將類重新載入。
適用場景:熱載入會直接修改jvm中的位元組碼,這種方式對既有**行為的影響難以控制,風險較大,幾乎不會在生產環境使用該方案。
二、熱部署
實現方式:weblogic、tomcat都可以通過配置支援熱部署,但主要用於開發測試環境,較少應用於生產環境。
適用場景:熱部署大大簡化了發布操作,在開發和測試環境使用很普遍;但由於開通熱部署後會增大系統開銷,因此較少在生產環境使用。
三、集群分批部署
原理:利用nginx、apache等**伺服器自動對後端伺服器的有效性進行判斷,**請求到有效的伺服器上。在此基礎上對後端伺服器先後逐個更新,達到不停機部署的目的。
實現方式:在集群的前端**伺服器上配置有效性檢測和自動剔除失效的後端伺服器。
適用場景:適用於多台後端伺服器的集群環境,該方案普遍應用於生產環境。
方案對比:
方案名稱
優點缺點
適用的環境
熱載入1. 直接修改jvm中的位元組碼,風險較高。
2. 需要開發監控和載入服務。
一般用於重啟速度較慢的測試環境,基本不會應用於生產環境。
熱部署中介軟體支援,風險相對較低。
記憶體釋放重建,更加乾淨徹底。
增大了中介軟體的系統開銷。
一般用於開發和測試環境,較少應用於生產環境。
集群分批部署
服務不中斷,使用者無感知。
無法支援乙個後端伺服器的情況。
手動操作,相對繁瑣
普遍應用於生產環境
方案選擇:
基於安全方面的考慮,我們建議選擇「集群分批部署」的方案。
集群分批部署的原型
架構圖如下:
nginx上配置上游伺服器,示例如下:
原型驗證
目的:驗證併發訪問時,剔除或停止某個應用伺服器,請求會不會丟失。
過程:a) 編寫應用程式,應用的服務端即時列印接收到的請求,並返回給前端jsp頁面,前端jsp頁面收到後也列印出請求資訊。
b) 關鍵**:
e) 部署該應用到兩個tomcat:192.168.8.112:1880 和 192.168.8.112:28080。
f) 模擬3個使用者分別不間斷地傳送1萬個請求給伺服器。
h) 在請求傳送的過程中,對其中乙個tomcat進行關閉,1分鐘後重啟。
i) 統計服務端的接收到的請求總數,統計值為30000。
j) 統計前端jsp頁面接收到請求總數,統計值為30000。
3.結論:在集群執行過程中,主動剔除,或直接停止某個應用節點做發布,請求不會丟失。
關於rm rf 問題與不停機清空檔案內容方法
使用rm rf 刪除一直程序正在占用的檔案,雖然檔案再資料夾中不再顯示,但是檢視物理磁碟,發現磁碟容量未增加 使用rm rf 刪除乙個程序一直占用的檔案,雖然檔案不再顯示,但是刪除的僅僅是當前檔案的鏈結,檔案實際還未刪除 將占用檔案的程序 kill掉,檔案便真正刪除掉了 有些程序是無法停止的,但是會...
不停機公升級ORACLE資料庫的方法簡介
如果你需要安裝的資料庫伺服器比較多,使用圖形化方式安裝資料庫軟體的速度還是很慢,而且也比較麻煩。oracle 11g 提供了clone安裝的方法。clone安裝的方法就是複製已經安裝好的乙個oracle到另乙個服務上。步驟如下 使用正常方法在伺服器a上安裝好oracle。將a機器上的 oracle ...
43 如何把系統不停機遷移到分庫分表的?
1 面試題 現在有乙個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動態切換到分庫分表上?2 面試官心裡分析 你看看,你現在已經明白為啥要分庫分表了,你也知道常用的分庫分表中介軟體了,你也設計好你們如何分庫分表的方案了 水平拆分 垂直拆分 分表 那問題來了,你接下來該怎麼把你那個...