feign和ribbon區別(負載均衡)


feign和ribbon是Spring Cloud的Netflix中提供的兩個實現軟負載均衡的組件,Ribbon和Feign都是用於調用其他服務的,方式不同。Feign則是在Ribbon的基礎上進行了一次改進,采用接口的方式。

feign 和 ribbon 是 Spring Cloud 的 Netflix 中提供的兩個實現軟負載均衡的組件,Ribbon 和 Feign 都是用於調用其他服務的,方式不同。Feign 則是在 Ribbon 的基礎上進行了一次改進,采用接口的方式,將需要調用的其他服務的方法定義成抽象方法即可,不需要自己構建 http 請求。不過要注意的是抽象方法的注解、方法簽名要和提供服務的方法完全一致。

1.啟動類使用的注解不同,Ribbon 用的是@RibbonClient,Feign 用的是@EnableFeignClients。
2.服務的指定位置不同,Ribbon 是在@RibbonClient 注解上聲明,Feign 則是在定義抽象方法的接口中使用@FeignClient 聲明。
3.調用方式不同,Ribbon 需要自己構建 http 請求,模擬 http 請求然后使用 RestTemplate 發送給其他服務,步驟相當繁瑣。

Feign
Feign 是在 Ribbon 的基礎上進行了一次改進,是一個使用起來更加方便的 HTTP 客戶端。采用接口的方式, 只需要創建一個接口,然后在上面添加注解即可 ,將需要調用的其他服務的方法定義成抽象方法即可, 不需要自己構建 http 請求。然后就像是調用自身工程的方法調用,而感覺不到是調用遠程方法,使得編寫 客戶端變得非常容易。

Ribbon
Ribbon 是一個基於 HTTP 和 TCP 客戶端 的負載均衡的工具。它可以 在客戶端 配置 RibbonServerList(服務端列表),使用 HttpClient 或 RestTemplate 模擬 http 請求,步驟相當繁瑣。


免責聲明!

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



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