SpringCloud學習筆記(2)——Ribbon


參考SpringCloud官網第16、17章

16. Client Side Load Balancer: Ribbon

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

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

Spring Cloud用RibbonClientConfiguration在ApplicationContext中創建一個新的全體,它包含一個ILoadBalancer、一個RestClient和一個ServerListFilter

16.1 How to Include Ribbon

16.2 Customizing the Ribbon Client

Spring Cloud可以讓你自己完全控制Ribbon客戶端,通過用@RibbonClient來聲明額外的配置。例如

在這個例子中,這個客戶端由RibbonClientConfiguration和FooConfiguration一起組成。

注意:本例中,FooConfiguration必須用@Configuration注解標注,但是它不應該在主Application Context的組件掃描之中,否則它將被所有的Ribbon客戶端共享。如果你用@ComponentScan(或者@SpringBootApplication),那么你應該采取措施來避免它被包含到掃描的范圍中。

16.3 Customizing default for all Ribbon Clients

通過@RibbonClients注解可以為所有的Ribbon客戶端提供一個默認的配置。例如

16.6 Example: How to Use Ribbon Without Eureka

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

16.7 Example: Disable Eureka use in Ribbon

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

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

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

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

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

最后是啟動類

還有調用的類

先啟動eureka-demo-server,然后再啟動另外兩個工程

瀏覽器訪問消費方地址

哈哈哈,訪問成功!!!

 

17. Declarative REST Client: Feign

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

17.1 How to Include Feign

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

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

17.2 Overriding Feign Defaults

 

 

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

再新建一個工程feign-demo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM