在做集群的時候, 不管是微軟的ARR還是Nginx, 都可以實作集群, 但是如果更新節點代碼檔案呢? 例如:有100臺機器,現在要更新里面的代碼檔案,那要更新一百次嗎, 顯示是不可能的, 怎么可以做到批量更新, 【windows 平臺下】,請各位大佬解惑!
uj5u.com熱心網友回復:
多種解決方案。首先你部署100臺機器的時候怎樣部署的?一臺臺手動安裝系統的?我們是使用 ghost一次性安裝的,每臺機器只要幾分鐘。實際上有(作業系統底層的)管理系統可以批量ghost。另外 .net 框架本身也集成了 click once 技術,MEF 框架等等,自己寫十行代碼呼叫框架即可。像.net的分布式 Actor框架新版本大概也支持熱更新機制。uj5u.com熱心網友回復:
你說的是"集群環境下更新檔案嗎"?比如有一個dll 你要發到100個機器上?
我用goodsync... 一臺做客戶端上傳的FTP. 然后另外99臺 開ftp服務 在第一臺上面安裝軟體 然后配置一下更變目錄以及更新機制.
那么你一旦上傳到第一臺 這個軟體會自動把更改的檔案 去分發到另外99臺上...
uj5u.com熱心網友回復:
需要考慮熱更新。也就是運行時能夠替換掉被行程已經加載了并且快取在記憶體中的各種 dll。uj5u.com熱心網友回復:
一旦不能熱更新,那么可能唯一的“穩定更新方式”就是在作業系統外部,使用一個更底層的網路發布系統來把整個系統停掉,然后對整個系統進行區域替換。uj5u.com熱心網友回復:
使用自動化發布工具,我使用的是 jenkinsuj5u.com熱心網友回復:
幾年前我寫過一個簡單的例子來演示那個時候的 MEF 功能:https://bbs.csdn.net/topics/392444516實際上我們還采用過很簡單的技術,因為我們在服務器端有一個“守候服務”負責按照組態檔定時拉起各種控制臺程式,于是我們的守候程式也去網站上去定時比對我們的控制臺程式目錄下的一個監視檔案串列,比對每一個需要監視的檔案的 md5,一旦發現不一樣,就殺掉控制臺行程,然后自動到網站上下載有了不一樣 md5 的檔案,下載完畢自動重新拉起控制臺行程。這也能跑得很穩定。當然,這樣做的前提是進行必要的測驗,不擔心任務被強行打斷。
uj5u.com熱心網友回復:
實際上最終的重點并不是一開始追求的花哨的功能,而是為了得到100%穩定成功率,絕不能容許時不時出現更新失敗現象。uj5u.com熱心網友回復:
哦,我寫的那個demo在帖子https://bbs.csdn.net/topics/391970445我還是要強調一點,所謂CICD也很勞民傷財。最好的最有價值的解決方案總是非常簡單和直接的。
uj5u.com熱心網友回復:
好的,謝謝您的回復,我這邊研究研究,非常感謝!uj5u.com熱心網友回復:
好的,謝謝,我研究研究uj5u.com熱心網友回復:
謝謝,我研究研究
uj5u.com熱心網友回復:
你說的是自動化部署這個正常情況是先更新到git(公有或私有無所謂)
然后各端自己和git同步
uj5u.com熱心網友回復:
開發不管用多少時間、多少人工,不過都是為了滿足測驗需要的,根本不是為了應用的。而部署才是真正面向應用的。多服務器自動部署,注重別總出岔子別使用任何多余的東西,這太重要了。uj5u.com熱心網友回復:
樓上說的goodsync挺好用的
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/14572.html
標籤:.NET技術前瞻
