您好,登錄后才能下訂單哦!
當當當當~~下半部分來咯,直接進入主題把,大家也可以關注我的微信公眾號 Java周某人,可以免費領取一些大廠面試資料
服務框架和治理
微服務很多的時候,就需要有治理了。一個好的微服務框架一般分為以下14個部分。如下圖所示。這就是開篇所說的,微服務涉及的東西很多,有些初創公司和業務不成熟的產品是不太適合的,成本比較高。
目前國內比較好的微服務框架就是阿里巴巴的DUBBO了,國外的就是spring cloud,大家可以去研究一下.
監控體系
監控是微服務治理的重要環節。一般分為以下四層。如下圖所示。
監控的內容分為五個部分:日志監控,Metrics監控(服務調用情況),調用鏈監控,告警系統和健康檢查。
日志監控,國內常用的就是ELK+KAFKA來實現。健康檢查和Metrics,像spring boot會自帶。Nagios也是一個很好的開源監控框架。
Trace調用鏈監控
調用鏈監控是用來追蹤微服務之前依賴的路徑和問題定位。例如阿里的鷹眼系統。主要原理就是子節點會記錄父節點的id信息。
下圖是目前比較流行的調用鏈監控框架。
微服務的限流熔斷
假設服務A依賴服務B和服務C,而B服務和C服務有可能繼續依賴其他的服務,繼續下去會使得調用鏈路過長。如果在A的鏈路上某個或幾個被調用的子服務不可用或延遲較高,則會導致調用A服務的請求被堵住,堵住的請求會消耗占用掉系統的線程、io等資源,當該類請求越來越多,占用的計算機資源越來越多的時候,會導致系統瓶頸出現,造成其他的請求同樣不可用,最終導致業務系統崩潰。
一般情況對于服務依賴的保護主要有兩種方式:熔斷和限流。目前最流行的就是Hystrix的熔斷框架。
下圖是Hystrix的斷路器原理圖:
限流方式可以采用zuul的API限流方法。
Docker 容器部署技術&持續交付流水線
隨著微服務的流行,容器技術也相應的被大家重視起來。容器技術主要解決了以下兩個問題:
1:環境一致性問題。例如java的jar/war包部署會依賴于環境的問題(操著系統的版本,jdk版本問題)。
2:鏡像部署問題。例如java,rubby,nodejs等等的發布系統是不一樣的,每個環境都得很麻煩的部署一遍,采用docker鏡像,就屏蔽了這類問題。
下圖是Docker容器部署的一個完整過程。
更重要的是,擁有如此多服務的集群環境遷移、復制也非常輕松,只需選擇好各服務對應的Docker服務鏡像、配置好相互之間訪問地址就能很快搭建出一份完全一樣的新集群。
容器調度和發布體系
目前基于容器的調度平臺有Kubernetes,mesos,omega。下圖是mesos的一個簡單架構示意圖。
下圖是一個完整的容器發布體系
喜歡這篇文章的話,可以給作者點個喜歡,點下關注,每天都會分享Java相關文章!
記得一定要關注我哦,會不定時的福利贈送,包括整理的面試題,學習資料,源碼等~~
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。