分布式的基礎(chǔ)概念

微服務(wù)

微服務(wù)架構(gòu)風(fēng)格,就像是把一個(gè)單獨(dú)的應(yīng)用程序開發(fā)為一套小服務(wù),每個(gè)小服務(wù)運(yùn)行在自己的進(jìn)程中,并使用輕量級(jí)機(jī)制通信(各微服務(wù)之間需要交換數(shù)據(jù)等),為了減少通信效率,通常是HTTP API,這些服務(wù)圍繞業(yè)務(wù)能力來構(gòu)建,并通過完全自動(dòng)化部署機(jī)制來獨(dú)立部署。
簡(jiǎn)而言之:拒絕大型單體應(yīng)用,基于業(yè)務(wù)邊界進(jìn)行服務(wù)微化拆分,各個(gè)服務(wù)獨(dú)立部署運(yùn)行。

集群&分布式&節(jié)點(diǎn)

集群是個(gè)物理形態(tài),分布式是工作方式。
分布式是指將不同的業(yè)務(wù)分布在不同的地方。
集群是指將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。
分布式中的每一個(gè)節(jié)點(diǎn),都可以做集群,而集群并不一定就是分布式的。
節(jié)點(diǎn):集群中的一個(gè)服務(wù)器。

遠(yuǎn)程調(diào)用

在分布式系統(tǒng)中,各個(gè)服務(wù)可能出于不同主機(jī),但服務(wù)之間不可避免的需要相互調(diào)用,我們稱為遠(yuǎn)程調(diào)用。
SpringCloud中使用HTTP+JSON的方式完成遠(yuǎn)程調(diào)用。

負(fù)載均衡

分布式系統(tǒng)中,A服務(wù)需要調(diào)用B服務(wù),B服務(wù)在多臺(tái)機(jī)器中都存在,A調(diào)用任意一個(gè)服務(wù)器均可完成功能。
不要讓服務(wù)器太忙或者太閑
常見的負(fù)載均衡算法:輪詢、最小連接、散列

服務(wù)注冊(cè)/發(fā)現(xiàn)&注冊(cè)中心

A服務(wù)調(diào)用B服務(wù),A服務(wù)并不知道B服務(wù)當(dāng)前在哪幾臺(tái)服務(wù)器有,哪些正常的,哪些服務(wù)已經(jīng)下線,解決這個(gè)問題引入注冊(cè)中心。

配置中心

每一個(gè)服務(wù)都有大量的配置,并且每個(gè)服務(wù)都可能部署在多臺(tái)機(jī)器上。我們經(jīng)常需要變更配置,我們可以讓每個(gè)服務(wù)在配置中心獲取自己的配置。
配置中心用來集中管理微服務(wù)的配置信息

服務(wù)熔斷&服務(wù)降級(jí)

服務(wù)熔斷(被動(dòng))
設(shè)置服務(wù)的超時(shí),當(dāng)被調(diào)用的服務(wù)經(jīng)常失敗到達(dá)某個(gè)閾值,我們可以開啟斷路保護(hù)機(jī)制,后來的請(qǐng)求不再去調(diào)用這個(gè)服務(wù)。本地直接返回默認(rèn)的數(shù)據(jù)。
服務(wù)降級(jí)(主動(dòng))
當(dāng)系統(tǒng)處于高峰期,可以讓非核心業(yè)務(wù)降低運(yùn)行。

API網(wǎng)關(guān)

在微服務(wù)架構(gòu)中,API Gateway作為整體架構(gòu)的重要組件,它抽象了微服務(wù)中都需要的公共功能,同時(shí)提供了客戶端負(fù)載均衡,服務(wù)自動(dòng)熔斷,灰度發(fā)布,統(tǒng)一認(rèn)證,限流流控,日志統(tǒng)計(jì)等豐富的功能,幫助我們解決很多API管理難題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容