回覆列表
-
1 # 光明右使8787
-
2 # 鴆鴆銪鷀
1.可以所有前端都掛載一個儲存,所有的前端都執行同一個儲存上的內容不就好維護了嗎?
2.使用rsync做檔案同步或者防篡改軟體來做檔案同步。
-
3 # 創客匯
分散式:服務分散部署在不同伺服器組成一個整體應用,分散壓力,解決高併發。
假設訪問量特別大,就可以做成分散式,將一個大專案拆分出來單獨執行。跟cdn一樣的機制。
Redis分散式:將redis中的資料分佈到不同的伺服器上,每臺伺服器儲存不同內容。Mysql叢集是每臺伺服器都存放相同資料。分散式部署:系統應用部署在2臺或以上伺服器或虛擬機器上,服務間透過RPC、WCF(包含WebService)等互動,即可稱作分散式部署。微服務也算作分散式的一種,反之則不然。 分散式優點: 1、將模組拆分,使用介面通訊,降低模組之間的耦合度。 2、將專案拆分成若干個子專案,不同團隊負責不同子專案。 3、增加功能時只需再加一個子專案,呼叫其它系統介面即可。 4、可靈活進行分散式部署。 5、提高程式碼的複用性,比如service層,如果不採用分散式rest服務方式架構,在手機Wap商城、微信商城、PC、Android、ios每個端都要寫一個service層邏輯,開發量大,難以維護和一起升級,此時可採用分散式rest服務方式共用一個service層。 缺點:系統之間互動要使用遠端通訊,介面開發增大工作量,但利大於弊。 微服務:可單獨部署執行的微小服務,一個服務只完成單一功能分散能力,服務之間透過RPC等互動,至少有一個數據庫。使用者量過大高併發時,建議將應用拆解為多個子系統,各自隔離,獨立負責功能。缺點:服務數量大,後期運維較難。分散式、微服務區別:分散式依賴整體組合,是系統的部署方式;微服務是架構設計方式,粒度更小,服務之間耦合度更低。獨立小團隊負責,敏捷性更高。叢集:多臺伺服器複製部署相同應用,由負載均衡共同對外提供服務,邏輯功能仍是單體應用。專案如果跑在一臺機器上,這臺機器如果出現故障,或者使用者請求量比較高一臺機器支撐不住,網站可能就訪問不了。那怎麼解決呢?就需要使用多臺機器,複製部署一樣的程式,讓幾個機器同時執行網站。那怎麼分發請求到所有機器上?所以負載均衡的概念就出現了。負載均衡:將請求分發以分攤伺服器壓力。基於反向代理能將所有的請求根據指定的策略演算法,分發到不同的伺服器上。實現負載均衡常用Nginx、LVS。負載均衡伺服器出現問題了怎麼辦?所有冗餘的概念就出現了。冗餘:兩臺或多臺伺服器,一個主伺服器,一個從伺服器。 假設一個主伺服器的負載均衡伺服器出現問題,從伺服器能替代主伺服器來繼續負載均衡。實現的方式就是使用Keepalive來搶佔虛擬主機。雙機雙工模式:目前Cluster(叢集)的一種形式,兩臺伺服器均為活動狀態,同時執行相同的應用,保證整體的效能,也實現了負載均衡和互為備份。WEB伺服器或FTP伺服器等用此種方式比較多。實現多臺伺服器程式碼(檔案)同步方案:1、負載均衡中實現程式碼同步rsync。2、rsync+inotify逐一檔案監聽並實時同步。3、實現redis共享session。
負載均衡是指負荷的分配模式,分散式是指運算分配模式,叢集是指鏈路拓補模式。可以理解為叢集是為了實現分散式運算,最終達到負載均衡和高可靠性的目標。linux上檔案同步有很多開源專案,度娘搜一下。