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