SpringCloud 服務之間呼叫
阿新 • • 發佈:2018-11-23
Spring cloud 中服務之間通過restful方式呼叫有兩種方式:
1.restTemplate+Ribbon
2.feign
Ribbon 是客戶端負載均衡器,Zuul閘道器負載均衡器 針對外部請求做負載。
客戶端ribbon的負載均衡,解決的是服務發起方(在Eureka註冊的服務)對被呼叫的服務的負載,比如我們查詢商品服務要呼叫顯示庫存和商品明細服務,通過商品服務的介面將兩個服務組合,可以減少外部應用的請求
ribbon是對服務之間呼叫做負載,是服務之間的負載均衡,zuul是可以對外部請求做負載均衡。
Feign http負載平衡客戶端:1、Feign採用的是介面加註解;2、Feign 整合了ribbon
1.首先建立一個eureka客戶端工程
2.啟動類上增加客戶端註解
3.新增yml配置資訊
4.增加一個服務類
5.啟動 工程測試如下
6.新增一個客戶端類實現服務呼叫,RestTemplate 的三種使用方式:
6.1 直接new一個RestTemplate
這種的缺點是地址是寫死的,在實際的為服務中我們是不知道對方的地址的。
6.2利用loadBalanceerClient通過應用名獲取url
6.3首先建立一個RestTemplate配置類
在控制層注入RestTemplate 使用restTemplate+應用名的方式訪問註冊服務。注意ribbon發現服務時服務名稱中不能含有"_"。