workerman平滑重啟原理

2021-08-17 02:38:58 字數 651 閱讀 4846

平滑重啟不同於普通的重啟,平滑重啟可以做到在不影響使用者的情況下重啟服務,以便重新載入php程式,完成業務**更新。

平滑重啟一般應用於業務更新或者版本發布過程中,能夠避免因為**發布重啟服務導致的暫時性服務不可用的影響。

注意:只有子程序執行過程中載入的檔案支援reload,主程序載入的檔案不支援reload。或者說worker::runall執行完後workerman執行過程中動態載入的檔案支援reload,worker::runall執行前就載入的檔案**不支援reload

workerman分為主程序和子程序,主程序負責監控子程序,子程序負責接收客戶端的連線和連線上發來的請求資料,做相應的處理並返回資料給客戶端。當業務**更新時,其實我們只要更新子程序,便可以達到更新**的目的。

當workerman主程序收到平滑重啟訊號時,主程序會向其中乙個子程序傳送安全退出(讓對應程序處理完畢當前請求後才退出)訊號,當這個程序退出後,主程序會重新建立乙個新的子程序(這個子程序載入了新的php**),然後主程序再次向另外乙個舊的程序傳送停止命令,這樣乙個程序乙個程序的重啟,直到所有舊的程序全部被置換為止。

我們看到平滑重啟實際上是讓舊的業務程序逐個退出然後並逐個建立新的程序做到的。為了在平滑重啟時不影響客使用者,這就要求程序中不要儲存使用者相關的狀態資訊,即業務程序最好是無狀態的,避免由於程序退出導致資訊丟失。

nginx重啟 平滑重啟

進入 ngiinx sbin目錄下 nginx c usr local nginx conf nginx.conf c引數指定了要載入的nginx配置檔案路徑 停止操作 停止操作是通過向nginx程序傳送訊號來進行的 步驟1 查詢nginx主程序號 ps ef grep nginx在程序列表裡 面找...

nginx重啟 平滑重啟

進入 ngiinx sbin目錄下 nginx c usr local nginx conf nginx.conf c引數指定了要載入的nginx配置檔案路徑 停止操作 停止操作是通過向nginx程序傳送訊號來進行的 步驟1 查詢nginx主程序號 ps ef grep nginx 在程序列表裡 面...

mysql平滑重啟 nginx平滑重啟和公升級

平滑重啟 kill hup cat usr local www nginx logs nginx.pid 平滑公升級nginx 這步是要得到編譯引數 用上面這段編譯 然後make,千萬別make install make完了 在objs目錄下就多了個nginx,這個就是新版本的程式了 mv usr ...