Feign微服務負載均衡和容錯率

2021-10-05 22:22:58 字數 1691 閱讀 9175

整合了hystrix和ribbon,並提供了宣告式消費者客戶端

功能:為微服務架構提供了provider之間的負載均衡和系統容錯率

建立乙個單獨的feign專案,加入依賴:openfeign,eureka discovery client,hystrix

yml配置:

spring::

name

: feign

server

:port

:3001

eureka

:client

:service-url

:defaultzone

: http://eureka1:2001/eureka, http://eureka2:2002/eureka

主程式註解:

@enablefeignclients

public

class

}

宣告式客戶端介面:

@feignclient

(name =

"item-service"

)//這裡寫的是服務名稱

public

inte***ce

itemfeignclient")

public jsonresult

>

getitems

(@pathvariable string orderid)

;}

feign預設已經啟用了負載均衡和重試

也可以在yml中配置

#對所有服務通用

ribbon

:maxautoretry:1

#可以先加服務名,再加配置,只對針對服務有效用

#feign不需要在工廠物件裡加,可以直接在yml中加超時時間

item-service

:ribbon

: readtimeout:

1500

feign預設不啟用降級和熔斷,需要新增配置啟用hystrix(不推薦)

yml:

feign

:hystrix

:enabled

:true

預設1秒會降級返回,如果沒有降級方法,會顯示白板頁

feign的降級方法和hystrix不太一樣

需要在宣告式客戶端介面的註解上,指定乙個fallback方法,注意這裡沒有引號

@feignclient

(name =

"item-service"

, fallback = itemfeignclientfb.

class

)public

inte***ce

itemfeignclient")

public jsonresult

>

getitems

(@pathvariable string orderid);(

"/decreasenumber"

)public jsonresult decreasenumber

(@requestbody list

items)

;}

然後建立itemfeignclientfb,繼承itemfeignclient,實現抽象方法即可

Feign 負載均衡

feign 是netflflix 公司開源的輕量級 rest 客戶端,使用 feign 可以非常方便的實現 客戶端。spring cloud 引入 feign 並且整合了 ribbon 實現客戶端負載均衡呼叫。1 在客戶端新增依賴 2 定義 feignclient 介面 參考swagger 文件定義...

dubbo集群容錯和負載均衡

當我們的系統中用到dubbo的集群環境,因為各種原因在集群呼叫失敗時,dubbo提供了多種容錯方案,預設為failover重試。dubbo的集群容錯在這裡想說說他是因為我們實際的專案中出現了此類的問題,因為依賴的第三方專案出現異常,導致dubbo呼叫超時,此時使用的是預設的集群容錯方式,而配置的re...

nacos微服務註冊和feign微服務呼叫

在0.7版本之前,在單機模式時nacos使用嵌入式資料庫實現資料的儲存,不方便觀察資料儲存的基本情況。0.7版本增加了支援mysql資料來源能力,具體的操作步驟 spring.datasource.platform mysql db.num 1 db.url.0 jdbc mysql db.user...