首頁 >後端開發 >Golang >golang 怎麼做熱更新

golang 怎麼做熱更新

(*-*)浩
(*-*)浩原創
2019-12-31 13:27:295530瀏覽

golang 怎麼做熱更新

Golang標準庫的http部分提供了強大的web應用支持,再加上negroni等中間件框架的支持,可以開發高效能的web應用(如提供Restful的api服務等)。                                              之後使用Linux作業系統的應用程式伺服器上,並用Nginx等做為反向代理,實作高可用的集群服務。當應用程式版本升級時,如何實現比較優雅的多態伺服器的版本更新呢?

問題分析

Web應用程式的更新,我覺得可能需要考慮幾個面向的問題:

編譯好的應用程式二進位檔案、設定檔上傳到伺服器上;應用程式伺服器能感知到有新的版本上傳;

在沒有停止服務的情況下,熱更新版本;

最好所有的更新過程,可以腳本化,減少手動操作的錯誤。

方案

其實,go社群有一些開源項目,可以自動偵測web應用程式的改變,並實現自動的更新,但這些應用程式都是偵測原始碼、資源檔案的更新,啟動build過程,實現自動的編譯和重新啟動。 例如 gin和 fresh,這些應用程式適合應用於開發和測試階段,可能不適合應用程式的部署和更新,但提供了良好的思路。

部署環境的目錄及版本的上傳

我將發布的應用二進位檔案和設定文件,存放在某個目錄下,如~/app/release ,每個版本都保留在這個目錄中,例如app.1.0、app.1.1、app.2.0,一旦發現有問題,可以及時的回滾

以上是golang 怎麼做熱更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn