日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix

發布時間:2025/3/8 javascript 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Feign默認已經整合了Hystrix,本節詳細探討Feign使用Hystrix的具體細節。

服務降級

1 加配置,默認Feign是不啟用Hystrix的,需要添加如下配置啟用Hystrix,這樣所有的Feign Client都會受到Hystrix保護!

feign:

?hystrix:

? ?enabled: true

2 提供Fallback:

@FeignClient(name = "microservice-provider-user", fallback = UserFeignClientFallback.class)

public interface UserFeignClient {

?@GetMapping("/users/{id}")

?User findById(@PathVariable("id") Long id);

}

@Component

class UserFeignClientFallback implements UserFeignClient {

?@Override

?public User findById(Long id) {

? ?return new User(id, "默認用戶", "默認用戶", 0, new BigDecimal(1));

?}

}

獲得造成fallback的原因

@FeignClient(name = "microservice-provider-user", fallbackFactory = UserFeignClientFallbackFactory.class)

public interface UserFeignClient {

?@GetMapping("/users/{id}")

?User findById(@PathVariable("id") Long id);

}

@Component

@Slf4j

class UserFeignClientFallbackFactory implements FallbackFactory<UserFeignClient> {

?@Override

?public UserFeignClient create(Throwable throwable) {

? ?return new UserFeignClient() {

? ? ?@Override

? ? ?public User findById(Long id) {

? ? ? ?log.error("進入回退邏輯", throwable);

? ? ? ?return new User(id, "默認用戶", "默認用戶", 0, new BigDecimal(1));

? ? ?}

? ?};

?}

}

Feign啟用/禁用Hystrix

全局啟用

feign.hystrix.enabled: true

全局禁用

feign.hystrix.enabled: false

或直接省略不寫。

局部啟用

利用Feign配置的自定義,為指定Feign Client指定如下配置類即可,Feign配置自定義詳見:跟我學Spring Cloud(Finchley版)-10-Feign深入

public class FeignDisableHystrixConfiguration {

? ?@Bean

? ?@Scope("prototype")

? ?public HystrixFeign.Builder feignBuilder() {

? ? ? ?return HystrixFeign.builder();

? ?}

}

局部禁用

public class FeignDisableHystrixConfiguration {

? ?@Bean

? ?@Scope("prototype")

? ?public Feign.Builder feignBuilder() {

? ? ? ?return Feign.builder();

? ?}

}

配套代碼

服務降級:

1 GitHub:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie-feign-hystrix

2 Gitee:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie-feign-hystrix

獲得造成fallback的原因:

1 GitHub:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie-feign-hystrix-fallback-factory

2 Gitee:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie-feign-hystrix-fallback-factory

相關熱文

  • 實用技巧:Hystrix傳播ThreadLocal對象(兩種方案)

  • 生產技巧:Feign如何控制Hystrix的啟停、超時、熔斷?

  • Hystrix停止開發,我們該何去何從?

  • Spring Cloud 源碼學習之 Hystrix 熔斷器

  • Spring Cloud Edgware新特性之二:如何配置Zuul的Hystrix線程池

  • 跟我學Spring Cloud(Finchley版)-12-微服務容錯三板斧

  • 跟我學Spring Cloud(Finchley版)-13-通用方式使用Hystrix

您的關注是對我最大的支持!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。