從單體到分布式,如何做到無損發布?


 由於我們的系統是7*24小時不間斷為用戶提供服務的,如果直接發布那些正在訪問的用戶就會訪問失敗,給用戶帶來不好的使用體驗,也會給公司帶來經濟損失,所以我們一般會選擇在凌晨用戶少的時候去發布。

 

為了發布不要影響到用戶訪問,為了不再在凌晨三點熬夜發布版本,無損發布就顯得非常重要了。

那么能做到無損發布嗎?答案是肯定的,需要nginx和web server配合完成,請看下面的流程圖。

無損發布流程

1,初始狀態

有兩個web server節點組成的集群。

 

 2,下線web-server1

給nginx發送指令(動態修改upstream,下面會講到),下線web-server1。

 

 3,部署和驗證web-server1

web-server1下線之后,就可以開始部署和驗證了,發布完成之后,可以直連到這個節點進行驗證。

 

4,上線web-server1

驗證沒有問題之后,就可以上線了。

 

 

5,按以上步驟依次發布其它節點

 遠程管理

那么,可能會有讀者會問怎么給nginx發送指令呢?我們可以借助nginx的第三方擴展模塊:ngx_http_dyups_module

因為ngx_http_dyups_module提供了restful的接口,所以我們基於此開發一個管理控制台,做到遠程管理,類似於下面這樣。

 

 

歡迎大家掃描下方二維碼獲取我的最新原創文章:

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM