SpringCloud學習筆記(2)——Ribbon

參考SpringCloud官網第1六、17章瀏覽器

16. Client Side Load Balancer: Ribbon服務器

Ribbon是一個客戶端的負載均衡器,它提供對大量的HTTP和TCP客戶端的訪問控制。Feign也是用的Ribbon,因此在這一章你也能夠用@FeignClient架構

Ribbon的一個核心概念是命名的客戶端。每一個負載均衡器都是這個組件的全體的一部分,它們一塊兒工做來鏈接到服務器,而且它們全體都有一個給定的名字。app

Spring Cloud用RibbonClientConfiguration在ApplicationContext中建立一個新的全體,它包含一個ILoadBalancer、一個RestClient和一個ServerListFilter負載均衡

16.1 How to Include Ribbon分佈式

SpringCloud學習筆記(2)——Ribbon

 

若是想學習Java工程化、高性能及分佈式、深刻淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友能夠加個人Java高級交流:854630135,羣裏有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給你們。ide

16.2 Customizing the Ribbon Client微服務

Spring Cloud可讓你本身徹底控制Ribbon客戶端,經過用@RibbonClient來聲明額外的配置。例如源碼分析

SpringCloud學習筆記(2)——Ribbon

 

在這個例子中,這個客戶端由RibbonClientConfiguration和FooConfiguration一塊兒組成。性能

注意:本例中,FooConfiguration必須用@Configuration註解標註,可是它不該該在主Application Context的組件掃描之中,不然它將被全部的Ribbon客戶端共享。若是你用@ComponentScan(或者@SpringBootApplication),那麼你應該採起措施來避免它被包含到掃描的範圍中。

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

16.3 Customizing default for all Ribbon Clients

經過@RibbonClients註解能夠爲全部的Ribbon客戶端提供一個默認的配置。例如

SpringCloud學習筆記(2)——Ribbon

 

16.6 Example: How to Use Ribbon Without Eureka

Eureka提供了一種抽象的發現遠程服務的便捷的方式,這樣你就沒必要在客戶端代碼中硬編碼服務端的URL,可是若是你不用它,那麼Ribbon和Feign也是經得起考驗的。假設,你沒有使用Eureka,而且你用@FeignClient聲明瞭一個"stores"服務,這個時候Ribbon Client默認生成一個配置的服務列表,固然你也能夠提供下面這樣的配置:

SpringCloud學習筆記(2)——Ribbon

 

16.7 Example: Disable Eureka use in Ribbon

SpringCloud學習筆記(2)——Ribbon

 

說了這麼多,那究竟怎麼用呢?下面看示例演示

在這個示例中有三個角色:註冊中心、服務提供方、服務消費方

SpringCloud學習筆記(2)——Ribbon

 

服務提供方是eureka-demo-client,消費方是ribbon-demo,下面看下消費方是如何配置的

首先是pom.xml,這個沒啥說的

SpringCloud學習筆記(2)——Ribbon

 

其次是application.yml,也沒什麼特別的

SpringCloud學習筆記(2)——Ribbon

 

最後是啓動類

SpringCloud學習筆記(2)——Ribbon

 

還有調用的類

SpringCloud學習筆記(2)——Ribbon

 

先啓動eureka-demo-server,而後再啓動另外兩個工程

SpringCloud學習筆記(2)——Ribbon

 

瀏覽器訪問消費方地址

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

哈哈哈,訪問成功!!!

SpringCloud學習筆記(2)——Ribbon

 

17. Declarative REST Client: Feign

Feign是一個聲明式的Web服務客戶端,它使得訪問Web服務變得更容易。爲了使用Feign,須要建立接口而且使用註解標註它。使用Feign的時候,Spring Cloud集成Ribbon和Eureka來提供一個具備負載均衡能力的HTTP客戶端。

17.1 How to Include Feign

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

@FeignClient註解的value值是一個任意客戶端的名字,這個名字被用於建立Ribbon負載均衡器。你還可使用url屬性來指定一個url。

Ribbon客戶端想要發現"stores"這個服務的真實的物理地址。若是你的應用中使用的是Eureka,那麼它將經過Eureka服務註冊類解析。

17.2 Overriding Feign Defaults

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

若是想學習Java工程化、高性能及分佈式、深刻淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友能夠加個人Java高級交流:854630135,羣裏有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給你們。

接下來,用Feign演示如何調用

再新建一個工程feign-demo

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

SpringCloud學習筆記(2)——Ribbon

 

歡迎工做一到八年的Java工程師朋友們加入Java高級交流:854630135

本羣提供免費的學習指導 架構資料 以及免費的解答

不懂得問題均可以在本羣提出來 以後還會有直播平臺和講師直接交流噢

相關文章
相關標籤/搜索