reloader:Go服務熱升級支持

以前我在公司寫過 一個簡單的Go熱升級支持進程
。但是工作時間寫的,領導不準開源。後我想另寫一個開源版本,但一直沒想到解決多端口的問題。後來就慢慢忘卻瞭。

直到最近一次偶然的機會,這個進程被人重新提起。又遇上待業期,正需要寫點東西打發時間。突然靈感來瞭,想到瞭多端口的解決方案。

於是有瞭 reloader

思路基本是之前版本的擴展版。一個master進程,多個worker進程,一個worker進程處理一個偵聽器。這樣可以實現多端口的動態偵聽和關閉。我又做瞭些進程管理的優化,推送到github。

無法否認,我的解決方案存在很多問題,因為偷偷起瞭多進程。比如進程在所有偵聽器和連接都關閉後依然不退出,這對於單進程無礙,對於reloader卻是多瞭N個垃圾worker進程。這些問題,得等待找到更好的解決方案。

Via blog.wencan.org

Ref. https://blog.wencan.org/2017/02/10/golang-hot-upgrade/, https://github.com/wencan/reloader, https://union-click.jd.com/jdc?d=ZKPlW2

推薦閱讀:

Spread the love

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *