Spring cloud系列十一 @Feign集成的Hystrix进行个性化配置及集成原理

本文详细介绍了如何在Spring Cloud中启用Feign与Hystrix的集成,包括如何配置Hystrix的个性化参数,以及Feign集成Hystrix的原理。通过示例代码展示了如何定义@FeignClient,配置Hystrix回退方法,并解释了@FeignClient、FeignClientsConfiguration、HystrixFeign等组件的作用。
摘要由CSDN通过智能技术生成

1. 概述

上文Spring cloud系列十 使用@HystrixCommand使用Hystrix组件及@EnableCircuitBreaker原理介绍介绍了Hystrix的基本用法。我们已知Spring Cloud的@Feign已经集成了Hystrix的功能。本文我们介绍如何内容:

  • 在Spring Cloud中,在Feign中开启Hystrix功能
  • 为集成在Feign中的Hystrix进行个性化配置。
  • Feign集成Hystrix的原理介绍

2. 相关的工程说明

  • 1 cloud-registration-center:注册中心
  • 2 cloud-service-hystrix: 作为服务方的工程
  • 3 cloud-consumer-hystrix:通过Fegin+Hystrix调用cloud-service-hystrix的接口

本节使用的工程和Spring cloud系列十 使用@HystrixCommand使用Hystrix组件及@EnableCircuitBreaker原理介绍相同
其中cloud-registration-center和cloud-service-hystrix完全相同,请参考这篇文章

3. cloud-consumer-hystrix

功能:此工程实现在Feign中开启Hystrix功能

3.1 pom.xml

关键jar

<!-- feign -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<!-- hystrix -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>

3.2. 配置属性文件

bootstrap-hystrix-feign.yml

# port
server:
  port: 12082

spring:
  application:
    # 本服务注册到注册到服务器的名称, 这个名称就是后面调用服务时的服务标识符
    name: cloud-consumer-hystrix
eureka:
  client:
    serviceUrl:
      # 服务器注册/获取服务器的zone
      defaultZone: http://127.0.0.1:10761/eureka/
  instance:
    prefer-ip-address: true

application-Hystrix-feign.yml
默认情况下,feign是不启动hystrix功能,需要我们启动此功能

# feign配置
feign:
  hystrix:
    # 在feign中开启hystrix功能,默认情况下feign不开启hystrix功能
    enabled: true

3.3. IMyHystrixClient和MyHystrixClientFallbackFactory

IMyHystrixClient
通过@FeignClient定义Fegin方法,并定义name和fallbackFactory。name属性可用于定义Feign方法的Hystrix的个性化配置,而不使用全局默认配置。fallbackFactory设置带有异常信息的回调方法

@FeignClient(name="cloud-hystrix-service"
        , fallbackFactory = MyHystrix
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值