服务器集群是什么
掃盲
以前的項目是?? 一個服務器就夠了? 文件+數(shù)據(jù)庫?? 所謂的All in One
隨著用戶越來越多,訪問量越來越大,硬盤、CPU、內(nèi)存越來越吃緊,一臺服務器滿足不了這還有文件服務器
數(shù)據(jù)服務與應用服務分離,我們給應用服務器配置更好的CPU、內(nèi)存
給數(shù)據(jù)服務器更好更快的硬盤
緩存提高訪問速度
假設Applicate Server 為Tomcat,Tomcat成為了一個瓶頸,我們可以購買更強大的硬件,但總會有上限?? 后期這成本呈指數(shù)型增長??
這個時候需要做服務器的集群,?
Load Balancer為負載均衡服務器
?
數(shù)據(jù)庫讀寫分離(一切為提高訪問速度)
W讀?? R寫
?
小飯店原來只有一個廚師,切菜洗菜備料炒菜全干。后來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,這兩個廚師的關系是集群。為了讓廚師專心炒菜,把菜做到極致,又請了個配菜師負責切菜,備菜,備料,廚師和配菜師的關系是分布式,一個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關系是集群
鏈接:https://www.zhihu.com/question/20004877/answer/112124929
分布式:一個業(yè)務分拆多個子業(yè)務,部署在不同的服務器上
集群:同一個業(yè)務,部署在多個服務器上
 
圖解
下面是充字數(shù)的
?
單機結構
一個系統(tǒng)業(yè)務量很小的時候所有的代碼都放在一個項目中就好了,然后這個項目部署在一臺服務器上就好了。整個項目所有的服務都由這臺服務器提供。這就是單機結構。
那么,單機結構有啥缺點呢?我想缺點是顯而易見的,單機的處理能力畢竟是有限的,當你的業(yè)務增長到一定程度的時候,單機的硬件資源將無法滿足你的業(yè)務需求。此時便出現(xiàn)了集群模式,往下接著看。
集群結構
集群模式在程序猿界有各種裝逼解釋,有的讓你根本無法理解,其實就是一個很簡單的玩意兒,且聽我一一道來。
單機處理到達瓶頸的時候,你就把單機復制幾份,這樣就構成了一個“集群”。集群中每臺服務器就叫做這個集群的一個“節(jié)點”,所有節(jié)點構成了一個集群。每個節(jié)點都提供相同的服務,那么這樣系統(tǒng)的處理能力就相當于提升了好幾倍(有幾個節(jié)點就相當于提升了這么多倍)。
但問題是用戶的請求究竟由哪個節(jié)點來處理呢?最好能夠讓此時此刻負載較小的節(jié)點來處理,這樣使得每個節(jié)點的壓力都比較平均。要實現(xiàn)這個功能,就需要在所有節(jié)點之前增加一個“調(diào)度者”的角色,用戶的所有請求都先交給它,然后它根據(jù)當前所有節(jié)點的負載情況,決定將這個請求交給哪個節(jié)點處理。這個“調(diào)度者”有個牛逼了名字——負載均衡服務器。
集群結構的好處就是系統(tǒng)擴展非常容易。如果隨著你們系統(tǒng)業(yè)務的發(fā)展,當前的系統(tǒng)又支撐不住了,那么給這個集群再增加節(jié)點就行了。但是,當你的業(yè)務發(fā)展到一定程度的時候,你會發(fā)現(xiàn)一個問題——無論怎么增加節(jié)點,貌似整個集群性能的提升效果并不明顯了。這時候,你就需要使用微服務結構了。
分布式結構
先來對前面的知識點做個總結。
從單機結構到集群結構,你的代碼基本無需要作任何修改,你要做的僅僅是多部署幾臺服務器,每臺服務器上運行相同的代碼就行了。但是,當你要從集群結構演進到微服務結構的時候,之前的那套代碼就需要發(fā)生較大的改動了。所以對于新系統(tǒng)我們建議,系統(tǒng)設計之初就采用微服務架構,這樣后期運維的成本更低。但如果一套老系統(tǒng)需要升級成微服務結構的話,那就得對代碼大動干戈了。所以,對于老系統(tǒng)而言,究竟是繼續(xù)保持集群模式,還是升級成微服務架構,這需要你們的架構師深思熟慮、權衡投入產(chǎn)出比。
OK,下面開始介紹所謂的分布式結構。
分布式結構就是將一個完整的系統(tǒng),按照業(yè)務功能,拆分成一個個獨立的子系統(tǒng),在分布式結構中,每個子系統(tǒng)就被稱為“服務”。這些子系統(tǒng)能夠獨立運行在web容器中,它們之間通過RPC方式通信。
舉個例子,假設需要開發(fā)一個在線商城。按照微服務的思想,我們需要按照功能模塊拆分成多個獨立的服務,如:用戶服務、產(chǎn)品服務、訂單服務、后臺管理服務、數(shù)據(jù)分析服務等等。這一個個服務都是一個個獨立的項目,可以獨立運行。如果服務之間有依賴關系,那么通過RPC方式調(diào)用。
這樣的好處有很多:
?
?
?
總結
 
                            
                        - 上一篇: vc++ mfc中拖动效果的实现 借助于
- 下一篇: yii 前后台分离及登陆验证
