feign和ribbon是springpom檔案cloud的netflix中提供的兩個實現軟負載均衡的元件,ribbon和feign都是用於呼叫其他服務的,方式不同。feign則是在ribbon的基礎上進行了一次改進,採用介面的方式。
/dependency>1.啟動類使用的註解不同,ribbon 用的是@ribbonclient,feign 用的是@enablefeignclients
@enableeurekaclient
@ribbonclient
(name =
"springcloud-priovider-dept"
, configuration = myrule.
class
)@enableeurekaclient
@enablefeignclients
(basepackages =
)2.服務的指定位置不同,ribbon 是在@ribbonclient 註解上宣告,feign 則是在定義抽象方法的介面中使用@feignclient 宣告
@configuration
public
class
configbean
}
@component
@feignclient
(value =
"springcloud-priovider-dept"
)public
inte***ce
deptclientservice")
public dept querybyid
(@pathvariable
("id"
)long id);(
"/dept/all"
)public list
queryall()
;}
3.呼叫方式不同,ribbon 需要自己構建 http 請求,模擬 http 請求然後使用 resttemplate 傳送給其他服務,步驟相當繁瑣。
ribbon 建立resttemplate
@restcontroller
public
class
deptconsumercontroller")
public dept get
(@pathvariable
("id"
) long id)
("/consumer/dept/add"
)public
boolean
add(dept dept)
("/consumer/dept/all"
)public list
deptlist()
}
feign使用抽象方法的介面注入
@autowired
private deptclientservice deptclientservice;
@component
@feignclient
(value =
"springcloud-priovider-dept"
)public
inte***ce
deptclientservice")
public dept querybyid
(@pathvariable
("id"
)long id);(
"/dept/all"
)public list
queryall()
;}
@restcontroller
public
class
deptconsumercontroller")
public dept get
(@pathvariable
("id"
) long id)
("/consumer/dept/add"
)public
boolean
add(dept dept)
("/consumer/dept/all"
)public list
deptlist()
}
Ribbon和Feign的區別
ribbon和feign都是用於呼叫其他服務的,不過方式不同。1.啟動類使用的註解不同,ribbon用的是 ribbonclient,feign用的是 enablefeignclients。2.服務的指定位置不同,ribbon是在 ribbonclient註解上宣告,feign則是在定義抽象方法的介...
Ribbon 和 Feign 的區別
ribbon 和 feign 的區別 spring cloud的 netflix 中提供了兩個元件實現軟負載均衡呼叫 ribbon 和 feign ribbon 是乙個基於 http 和 tcp 客戶端 的負載均衡的工具。它可以 在客戶端 配置 ribbonserverlist 服務端列表 使用 h...
15 Feign和Ribbon的聯絡
ribbon是乙個基於 http 和 tcp 客戶端 的負載均衡的工具。它可以 在客戶端 配置ribbonserverlist 服務端列表 使用 httpclient 或 resttemplate 模擬http請求,步驟相當繁瑣。feign是在 ribbon的基礎上進行了一次改進,是乙個使用起來更加...