什么是分布式,分布式和集群的區(qū)別又是什么?
1. 什么是分布式 ?
分布式系統(tǒng)一定是由多個節(jié)點組成的系統(tǒng)。
其中,節(jié)點指的是計算機服務器,而且這些節(jié)點一般不是孤立的,而是互通的。
這些連通的節(jié)點上部署了我們的節(jié)點,并且相互的操作會有協(xié)同。
分布式系統(tǒng)對于用戶而言,他們面對的就是一個服務器,提供用戶需要的服務而已,
而實際上這些服務是通過背后的眾多服務器組成的一個分布式系統(tǒng),因此分布式系統(tǒng)看起來像是一個超級計算機一樣。
所謂分布式系統(tǒng),是指一個完整的應用系統(tǒng)被拆分后,分別部署到不同的網(wǎng)絡節(jié)點中,這樣的系統(tǒng)往往是一些大型的系統(tǒng)。這種做法的好處是,可以提高系統(tǒng)的運算能力。與分布式系統(tǒng)相對應的就是 單體應用系統(tǒng),單體應用系統(tǒng)的思想是all in one 思想, 就是全部在一起,一個系統(tǒng)的全部服務都集中在一個網(wǎng)絡節(jié)點上。
2. 分布式與集群的區(qū)別 ?
集群
集群是指在幾個服務器上部署相同的應用程序來分擔客戶端的請求。
它是同一個系統(tǒng)部署在不同的服務器上,比如一個登陸系統(tǒng)部署在不同的服務器上。
好比 多個人一起做同樣的事。
集群主要的使用場景是為了分擔請求的壓力。
但是,當壓力進一步增大的時候,可能在需要存儲的部分,比如mysql無法面對大量的“寫壓力”。
因為在mysql做成集群之后,主要的寫壓力還是在master的機器上,其他slave機器無法分擔寫壓力,這時,就引出了“分布式”。
分布式
分布式是指多個系統(tǒng)協(xié)同合作完成一個特定任務的系統(tǒng)。
它是不同的系統(tǒng)部署在不同的服務器上,服務器之間相互調用。
好比 多個人一起做不同的事。
分布式是解決中心化管理的問題,把所有的任務疊加到一個節(jié)點處理,太慢了。
所以把一個大問題拆分為多個小問題,并分別解決,最終協(xié)同合作。
分布式的主要工作是分解任務,把職能拆解。
分布式的主要應用場景是單臺機器已經無法滿足這種性能的要求,必須要融合多個節(jié)點,并且節(jié)點之間的相關部分是有交互的。
相當于在寫mysql的時候,每個節(jié)點存儲部分數(shù)據(jù)(分庫分表),這就是分布式存儲的由來。
存儲一些非結構化數(shù)據(jù):靜態(tài)文件、圖片、pdf、小視頻 … 這些也是分布式文件系統(tǒng)的由來。
用生活中的例子,來說明集群和分布式及其區(qū)別:
小飯店原來只有一個廚師,切菜洗菜備料炒菜全干。
后來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師炒一樣的菜,這兩個廚師的關系是集群。
為了讓廚師專心炒菜,把菜做到極致,又請了個配菜師負責切菜,備菜,備料,廚師和配菜師的關系是分布式,
一個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關系是集群。
最后,再深入理解一下集群和分布式及其區(qū)別:
分布式:把一個大業(yè)務拆分成多個子業(yè)務,每個子業(yè)務都是一套獨立的系統(tǒng),子業(yè)務之間相互協(xié)作最終完成整體的大業(yè)務。
集群
把處理同一個業(yè)務的系統(tǒng)部署多個節(jié)點 。
把一套系統(tǒng)拆分成不同的子系統(tǒng)部署在不同服務器上,這叫分布式。
把多個相同的系統(tǒng)部署在不同的服務器上,這叫集群。部署在不同服務器上的相同系統(tǒng)必然要做“負載均衡”。
集群主要是簡單加機器解決問題,對于問題本身不做任何分解。
分布式處理里必然涉及任務分解與答案歸并。分布式中的某個子任務節(jié)點,可以是一個集群,該集群中的任一節(jié)點都作為一個完整的任務出現(xiàn)。
集群和分布式都是由多個節(jié)點組成,但集群中各節(jié)點間基本不需要通信協(xié)調,而分布式中各個節(jié)點的通信協(xié)調是必不可少的。
3. 分布式環(huán)境下面臨的問題
- 網(wǎng)絡通信:網(wǎng)絡本身的不可靠性,因此會涉及到一些網(wǎng)絡通信問題
- 網(wǎng)絡分區(qū)(腦裂):當網(wǎng)絡發(fā)生異常導致分布式系統(tǒng)中部分節(jié)點之間的網(wǎng)絡延時不斷增大,最終導致組成分布式架構的所有節(jié)點,只有部分節(jié)點能夠正常通信
-
三態(tài):在分布式架構里面多了個狀態(tài):超時,所以有三態(tài): 成功、失敗、超時
-
分布式事務:ACID(原子性、一致性、隔離性、持久性)
中心化和去中心化:冷備或者熱備
分布式架構里面,很多的架構思想采用的是:當集群發(fā)生故障的時候,集群中的人群會自動“選舉”出一個新的領導。
最典型的是: zookeeper / etcd
經典的CAP/BASE理論
4. 常見的分布式系統(tǒng)
5. 什么是微服務架構?
S0A 架構
SOA 架構就是面向于服務的架構思想,本質上就是以服務為中心,把應用拆分為多個服務,抽離出可重用的服務,為每個服務的單獨擴展和開發(fā)提高便利性。阿里的Dubbo 就是SOA服務架構的一種實現(xiàn),事實上SOA并沒有對服務間通信協(xié)議具體規(guī)定,可以RPC,可以HTTP。文章來源:http://www.zghlxwxcb.cn/news/detail-800351.html
微服務
微服務是一種SOA思想的延續(xù),任然關注服務,但是強調是"微",微體現(xiàn)的是服務開發(fā)成分要低,職責要盡量單一,同時部署也要靈活方便。目前微服務是非常流行的一種軟件架構,在Java生態(tài)中 SpringCloud就提供了微服務的全站解決方案。文章來源地址http://www.zghlxwxcb.cn/news/detail-800351.html
到了這里,關于L3上云01 | 分布式、微服務概念的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!