溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

深入理解分析微服務(wù)(下)

發(fā)布時(shí)間:2020-06-28 16:35:57 來(lái)源:網(wǎng)絡(luò) 閱讀:369 作者:java周某人 欄目:編程語(yǔ)言

深入理解分析微服務(wù)(下)

當(dāng)當(dāng)當(dāng)當(dāng)~~下半部分來(lái)咯,直接進(jìn)入主題把,大家也可以關(guān)注我的微信公眾號(hào) Java周某人,可以免費(fèi)領(lǐng)取一些大廠面試資料

服務(wù)框架和治理

微服務(wù)很多的時(shí)候,就需要有治理了。一個(gè)好的微服務(wù)框架一般分為以下14個(gè)部分。如下圖所示。這就是開(kāi)篇所說(shuō)的,微服務(wù)涉及的東西很多,有些初創(chuàng)公司和業(yè)務(wù)不成熟的產(chǎn)品是不太適合的,成本比較高。

目前國(guó)內(nèi)比較好的微服務(wù)框架就是阿里巴巴的DUBBO了,國(guó)外的就是spring cloud,大家可以去研究一下.


深入理解分析微服務(wù)(下)



監(jiān)控體系

監(jiān)控是微服務(wù)治理的重要環(huán)節(jié)。一般分為以下四層。如下圖所示。


深入理解分析微服務(wù)(下)



監(jiān)控的內(nèi)容分為五個(gè)部分:日志監(jiān)控,Metrics監(jiān)控(服務(wù)調(diào)用情況),調(diào)用鏈監(jiān)控,告警系統(tǒng)和健康檢查。

日志監(jiān)控,國(guó)內(nèi)常用的就是ELK+KAFKA來(lái)實(shí)現(xiàn)。健康檢查和Metrics,像spring boot會(huì)自帶。Nagios也是一個(gè)很好的開(kāi)源監(jiān)控框架。

Trace調(diào)用鏈監(jiān)控

調(diào)用鏈監(jiān)控是用來(lái)追蹤微服務(wù)之前依賴(lài)的路徑和問(wèn)題定位。例如阿里的鷹眼系統(tǒng)。主要原理就是子節(jié)點(diǎn)會(huì)記錄父節(jié)點(diǎn)的id信息。


深入理解分析微服務(wù)(下)



下圖是目前比較流行的調(diào)用鏈監(jiān)控框架。


深入理解分析微服務(wù)(下)



微服務(wù)的限流熔斷

假設(shè)服務(wù)A依賴(lài)服務(wù)B和服務(wù)C,而B(niǎo)服務(wù)和C服務(wù)有可能繼續(xù)依賴(lài)其他的服務(wù),繼續(xù)下去會(huì)使得調(diào)用鏈路過(guò)長(zhǎng)。如果在A的鏈路上某個(gè)或幾個(gè)被調(diào)用的子服務(wù)不可用或延遲較高,則會(huì)導(dǎo)致調(diào)用A服務(wù)的請(qǐng)求被堵住,堵住的請(qǐng)求會(huì)消耗占用掉系統(tǒng)的線(xiàn)程、io等資源,當(dāng)該類(lèi)請(qǐng)求越來(lái)越多,占用的計(jì)算機(jī)資源越來(lái)越多的時(shí)候,會(huì)導(dǎo)致系統(tǒng)瓶頸出現(xiàn),造成其他的請(qǐng)求同樣不可用,最終導(dǎo)致業(yè)務(wù)系統(tǒng)崩潰。

一般情況對(duì)于服務(wù)依賴(lài)的保護(hù)主要有兩種方式:熔斷和限流。目前最流行的就是Hystrix的熔斷框架。

下圖是Hystrix的斷路器原理圖:


深入理解分析微服務(wù)(下)



限流方式可以采用zuul的API限流方法。

Docker 容器部署技術(shù)&持續(xù)交付流水線(xiàn)

隨著微服務(wù)的流行,容器技術(shù)也相應(yīng)的被大家重視起來(lái)。容器技術(shù)主要解決了以下兩個(gè)問(wèn)題:

1:環(huán)境一致性問(wèn)題。例如java的jar/war包部署會(huì)依賴(lài)于環(huán)境的問(wèn)題(操著系統(tǒng)的版本,jdk版本問(wèn)題)。

2:鏡像部署問(wèn)題。例如java,rubby,nodejs等等的發(fā)布系統(tǒng)是不一樣的,每個(gè)環(huán)境都得很麻煩的部署一遍,采用docker鏡像,就屏蔽了這類(lèi)問(wèn)題。

下圖是Docker容器部署的一個(gè)完整過(guò)程。


深入理解分析微服務(wù)(下)



更重要的是,擁有如此多服務(wù)的集群環(huán)境遷移、復(fù)制也非常輕松,只需選擇好各服務(wù)對(duì)應(yīng)的Docker服務(wù)鏡像、配置好相互之間訪問(wèn)地址就能很快搭建出一份完全一樣的新集群。

容器調(diào)度和發(fā)布體系

目前基于容器的調(diào)度平臺(tái)有Kubernetes,mesos,omega。下圖是mesos的一個(gè)簡(jiǎn)單架構(gòu)示意圖。


深入理解分析微服務(wù)(下)



下圖是一個(gè)完整的容器發(fā)布體系


深入理解分析微服務(wù)(下)



喜歡這篇文章的話(huà),可以給作者點(diǎn)個(gè)喜歡,點(diǎn)下關(guān)注,每天都會(huì)分享Java相關(guān)文章!

記得一定要關(guān)注我哦,會(huì)不定時(shí)的福利贈(zèng)送,包括整理的面試題,學(xué)習(xí)資料,源碼等~~


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI