作者:@lxchinesszz
本文為作者原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處
小編最近在做微服務(wù)架構(gòu)的工程,工程是由之前公司的人搭建起來的,說直白就是理論架構(gòu),一個(gè)業(yè)務(wù)拆分多個(gè)子任務(wù)模塊,部署在不同的服務(wù)器上,通過http協(xié)議進(jìn)行通信,之所以這樣其中主要原因是因?yàn)?,?xiàng)目開發(fā)中用到了不同的語言,對(duì)于大多數(shù)供銷商使用node開發(fā),對(duì)于支付使用java開發(fā)。在業(yè)余時(shí)間,小編我是一個(gè)喜歡新鮮事物,最近在研究Spring Cloud項(xiàng)目,項(xiàng)目中涉及到了服務(wù)的注冊(cè),這之間的知識(shí),如果不理解,分布式和集群的區(qū)別,很難去學(xué)習(xí),在博客上看了很多文章,雖有啟發(fā),但是總覺得不是自己總結(jié)的,很難吃透,于是一個(gè)深夜,趁著失眠,在手機(jī)上把內(nèi)心所想寫了,寫來,在此總結(jié)。本文只做理論上說明,后面會(huì)面向單個(gè)技術(shù)更新博客。
前言
? 作為開發(fā)人員,充滿了對(duì)前輩們的敬仰之情,正是他們的當(dāng)年的拼命的為了心中的那份對(duì)技術(shù)單純的執(zhí)著,使如今的我們站在了巨人的肩膀上,開發(fā)項(xiàng)目,減輕了工作的負(fù)擔(dān),再次發(fā)自內(nèi)心的感謝。
這些技術(shù)就像武功秘籍一樣,深深的誘惑這我們,仿佛拿到他們就可以縱橫天下。
- [ ]
分布式 - [ ]
集群 - [ ]
機(jī)器學(xué)習(xí) - [ ]
大數(shù)據(jù)
分布式
所謂的分布式就是并行計(jì)算,一個(gè)任務(wù)一臺(tái)服務(wù)器要10小時(shí)計(jì)算,在不購(gòu)買超級(jí)服務(wù)器的情況下,如何解決這個(gè)問題呢,答案就是分布式計(jì)算。用小型機(jī)群通過技術(shù)組成一個(gè)超級(jí)計(jì)算機(jī),就是把這個(gè)任務(wù)分成十個(gè)子任務(wù),每個(gè)子任務(wù)一個(gè)小時(shí),那么等于十臺(tái)小型機(jī),一個(gè)小時(shí)就可以完成。
集群
什么是集群,集群區(qū)別于分布式,分布式是一種思想,集群就是一種物理體現(xiàn)。當(dāng)十個(gè)子任務(wù)同時(shí)到達(dá),如何在一個(gè)小時(shí)處理完成呢,用十臺(tái)服務(wù)器處理,一臺(tái)服務(wù)器處理一個(gè)子任務(wù),也是一個(gè)小時(shí)就可以完成這十個(gè)任務(wù)。
兩個(gè)優(yōu)點(diǎn)
-
高可用性
集群特點(diǎn),穩(wěn)定,一臺(tái)服務(wù)掛了,還有其他服務(wù)在運(yùn)行,因?yàn)槊颗_(tái)服務(wù)器都是執(zhí)行獨(dú)立的任務(wù)。
-
可擴(kuò)展性
集群的性能不限于單一的服務(wù)實(shí)體,新的服務(wù)實(shí)體可以動(dòng)態(tài)地加入到集群,從而增強(qiáng)集群的性能
兩大能力
-
負(fù)載均衡
負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計(jì)算和網(wǎng)絡(luò)資源。 -
錯(cuò)誤恢復(fù)
由于某種原因,執(zhí)行某個(gè)任務(wù)的資源出現(xiàn)故障,另一服務(wù)實(shí)體中執(zhí)行同一任務(wù)的資源接著完成任務(wù)。這種由于一個(gè)實(shí)體中的資源不能工作,另一個(gè)實(shí)體中的資源透明的繼續(xù)完成任務(wù)的過程叫錯(cuò)誤恢復(fù)。 負(fù)載均衡和錯(cuò)誤恢復(fù)都要求各服務(wù)實(shí)體中有執(zhí)行同一任務(wù)的資源存在,而且對(duì)于同一任務(wù)的各個(gè)資源來說,執(zhí)行任務(wù)所需的信息視圖(信息上下文)必須是一樣的。
兩大技術(shù)
-
集群地址
集群由多個(gè)服務(wù)實(shí)體組成,集群客戶端通過訪問集群的集群地址獲取集群內(nèi)部各服務(wù)實(shí)體的功能。具有單一集群地址(也叫單一影像)是集群的一個(gè)基 本特征。維護(hù)集群地址的設(shè)置被稱為負(fù)載均衡器。負(fù)載均衡器內(nèi)部負(fù)責(zé)管理各個(gè)服務(wù)實(shí)體的加入和退出,外部負(fù)責(zé)集群地址向內(nèi)部服務(wù)實(shí)體地址的轉(zhuǎn)換。有的負(fù)載均 衡器實(shí)現(xiàn)真正的負(fù)載均衡算法,有的只支持任務(wù)的轉(zhuǎn)換。只實(shí)現(xiàn)任務(wù)轉(zhuǎn)換的負(fù)載均衡器適用于支持ACTIVE-STANDBY的集群環(huán)境,在那里,集群中只有 一個(gè)服務(wù)實(shí)體工作,當(dāng)正在工作的服務(wù)實(shí)體發(fā)生故障時(shí),負(fù)載均衡器把后來的任務(wù)轉(zhuǎn)向另外一個(gè)服務(wù)實(shí)體。?
-
內(nèi)部通信
為了能協(xié)同工作、實(shí)現(xiàn)負(fù)載均衡和錯(cuò)誤恢復(fù),集群各實(shí)體間必須時(shí)常通信,比如負(fù)載均衡器對(duì)服務(wù)實(shí)體心跳測(cè)試信息、服務(wù)實(shí)體間任務(wù)執(zhí)行上下文信息的通信。 具有同一個(gè)集群地址使得客戶端能訪問集群提供的計(jì)算服務(wù),一個(gè)集群地址下隱藏了各個(gè)服務(wù)實(shí)體的內(nèi)部地址,使得客戶要求的計(jì)算服務(wù)能在各個(gè)服務(wù)實(shí)體之間分布。內(nèi)部通信是集群能正常運(yùn)轉(zhuǎn)的基礎(chǔ),它使得集群具有均衡負(fù)載和錯(cuò)誤恢復(fù)的能力。?
總結(jié)
再簡(jiǎn)單的說一點(diǎn),就是同一個(gè)業(yè)務(wù)按分為子任務(wù)運(yùn)行在不同主機(jī)上叫分布式,
同一個(gè)業(yè)務(wù)運(yùn)行在不同主機(jī)上叫集群,兩者區(qū)別就是業(yè)務(wù)是否拆分為子任務(wù)。是否并行計(jì)算。
分布式就不可以,因?yàn)槭遣⑿杏?jì)算,雖然提高了計(jì)算能力,但是如果一臺(tái)掛了,那么就會(huì)影響這個(gè)任務(wù)的正常進(jìn)行。