Ribbon和Feign 服務構建區別

2021-10-10 10:36:59 字數 2872 閱讀 6277

feign和ribbon是spring

cloud的netflix中提供的兩個實現軟負載均衡的元件,ribbon和feign都是用於呼叫其他服務的,方式不同。feign則是在ribbon的基礎上進行了一次改進,採用介面的方式。

pom檔案

/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的基礎上進行了一次改進,是乙個使用起來更加...