technorati 標籤: 分布式,負載均衡,科普
本文整理自分布式與集群
有3個系統,他們所做的業務不同,被部署在獨立的機器上執行。
這三個系統之間可以互相呼叫,一起來完成公司的業務流程。
那麼什麼是分布式系統呢?將不同的業務分布在不同的地方就構成了分布式系統。
如下圖所示,client只通過系統a訪問整個分布式系統,所以如果使用者量大的時候,有可以掛掉,這就是單點失敗
既然系統a有可能因為訪問量大出現無法處理的情況,那就多用幾台主機對外提供服務。
下圖所示為系統a部署了3份,每乙份都是系統a的例項。但是每台主機都有自己的ip位址,到底訪問哪乙個呢?如果只訪問乙個,除了可靠性得到提公升,實際上效能上沒有大的改變。
這種模式也可以理解為「一人幹活,多人圍觀」
**總結一下集群就是將相同服務部署在多台伺服器上構成乙個集群整體對外提供服務,
負載均衡(load balancer)
負載均衡就是讓3臺主機上的工作均衡一點,每台主機都幫忙分擔一點,而不是讓一台主機全部扛起來。
而且這個負載均衡的工作,最好獨立出來,放到獨立的伺服器或者裝置上(比如nginx),但是負載均衡的單點故障也來了,所以至少把負載均衡也搞成乙個集群。
不過負載均衡的集群與系統a的業務集群有不同:
彈性主要適用於有業務峰值的場景,比如雙十一,使用者量是平時的若干倍,但是只要雙十一一過,就不需要這麼多伺服器呢。為了節省成本,可以不使用物理伺服器,而是通過虛擬機器的方式,在原有的物理機上加一層軟體邏輯層,可以抽象出虛擬的伺服器,在其上可以安裝作業系統以及應用系統。
這樣可以在雲端進行虛擬機器的建立了,雙十一以後把虛擬伺服器關掉即可。
於是這套系統有了彈性。
失效轉移
上面的系統看上去美好,但是做了乙個假設服務其實是無狀態的,也就是說使用者兩次請求沒有關係。
比如使用者訪問系統,在伺服器a上建立了乙個購物車,加入了商品,然後伺服器a就掛了,此時其他伺服器會去接管使用者的訪問,這就是失效轉移
但是其他伺服器上並沒有購物車資訊,那麼使用者就會發現原來的購物車裡面的東西沒有了。使用者體驗相當不好。所以集群一定要處理好狀態的轉移
一般來說有兩種思路share-nothing和共享儲存
分布式是將不同的業務部署在不同的地方,而集群是將幾台伺服器集中在一起完成同一業務。
分布式的每乙個節點都可以做集群,集群不一定就是分布式。
總之,乙個分布式系統是由多個節點組成,各節點可能是集群化的,而且各集群還是分布式的。
分布式與集群
分布式架構 多個子系統相互協作才能完成業務流程。系統之間需要進行通訊。集群 同乙個工程部署到多台伺服器上。分布式架構 把系統按照模組拆分成多個子系統。優點 1 把模組拆分,使用介面通訊,降低模組之間的耦合度。2 把專案拆分成若干個子專案,不同的團隊負責不同的子專案。3 增加功能時只需要再增加乙個子專...
分布式與集群
分布式 不同的業務模組部署在不同的伺服器上或者同乙個業務模組分拆多個子業務,部署在不同的伺服器上,解決高併發的問題。集群 同乙個業務部署在多台機器上,提高系統可用性。負載均衡 將一套系統拆分成不同子系統部署在不同伺服器上 這叫分布式 然後部署多個相同的子系統在不同的伺服器上 這叫集群 部署在不同伺服...
集群與分布式
小飯店原來只有乙個廚師,切菜洗菜備料炒菜全乾。後來客人多了,廚房乙個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,這兩個廚師的關係是集群。為了讓廚師專心炒菜,把菜做到極致,又請了個配菜師負責切菜,備菜,備料,廚師和配菜師的關係是分布式,乙個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關係是集...