天天看點

15、Feign和Ribbon的聯系

一、 Feign和Ribbon的聯系

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

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

二、 負載均衡

Feign中本身已經內建了Ribbon依賴和自動配置,是以我們不需要額外引入依賴,也不需要再注冊 RestTemplate 對象。另外,我們可以像上節課中講的那樣去配置Ribbon,可以通過 ribbon.xx 來進行全局配置。也可以通過 服務名.ribbon.xx 來對指定服務配置:

1、啟動兩個 product_service ,重新測試可以發現使用Ribbon的輪詢政策進行負載均衡。

15、Feign和Ribbon的聯系
15、Feign和Ribbon的聯系

2、請求Eureka注冊中心位址:http://127.0.0.1:9000/

會發現有兩個商品服務,端口分别為9001、9011如圖:

15、Feign和Ribbon的聯系

3、請求訂單服務位址:http://127.0.0.1:9002/order/buy/1

調用的是不同的商品服務,并且是輪詢政策,如圖:

15、Feign和Ribbon的聯系
15、Feign和Ribbon的聯系

繼續閱讀