更新時間:2021-06-11 來源:黑馬程序員 瀏覽量:
SpringCloud是一系列框架的有序集合,它利用SpringBoot 的開發(fā)便利性簡化了分布式系統(tǒng)的開發(fā),比如服務(wù)發(fā)現(xiàn).服務(wù)網(wǎng)關(guān).服務(wù)路由.鏈路追蹤等。其設(shè)計目的是為了簡化Spring 應(yīng)用的搭建和開發(fā)過程。該框架遵循“約定大于配置”原則,采用特定的方式進(jìn)行配置,從而使開發(fā)者無需定義大量的XML配置。通過這種方式,SpringBoot 致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域成為領(lǐng)導(dǎo)者。SpringCloud 并不重復(fù)造輪子,而是將市面上開發(fā)得比較好的模塊集成進(jìn)去,進(jìn)行封裝,從而減少了各模塊的開發(fā)成本。換句話說:Spring cloud提供了構(gòu)建分布式系統(tǒng)所需的“全家桶”。核心組件如下:
Eureka:各個服務(wù)啟動時,Eureka Client 都會將服務(wù)注冊到Eureka Server,并且Eureka Client 還可以反過來從Eureka Server 拉取注冊表,從而知道其他服務(wù)在哪里
Ribbon:服務(wù)間發(fā)起請求的時候,基于Ribbon 做負(fù)載均衡,從一個服務(wù)的多臺機(jī)器中選擇一臺
Feign:基于Feign 的動態(tài)代理機(jī)制,根據(jù)注解和選擇的機(jī)器,拼接請求URL地址,發(fā)起請求
Hystrix:發(fā)起請求是通過Hystrix 的線程池來走的,不同的服務(wù)走不同的線程池,實現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)雪崩的問題
Zuul:如果前端.移動端要調(diào)用后端系統(tǒng),統(tǒng)一從Zuul 網(wǎng)關(guān)進(jìn)入,由Zuul網(wǎng)關(guān)轉(zhuǎn)發(fā)請求給對應(yīng)的服務(wù)
猜你喜歡:
Spring中的JDK動態(tài)代理是如何實現(xiàn)的?
Spring Cloud Hystrix原理詳細(xì)介紹