12、SpringCloud实战:Feign客户端整合Hystrix服务保护

目录

1、 项目pom文件中引入feign客户端依赖;

2、 编写feign客户端接口,并配置fallback回调方法的类;

3、 编写controller,使用feign客户端进行RPC远程过程调用;

4、 实现feign客户端接口方法,并实现feign客户端接口中的每个接口方法作为fallback回调方法,返回托底数据,将类交给spring管理;

5、 配置文件开启feign客户端的熔断机制;

6、 在server-pay服务中编写接口方法供服务消费者使用;

7、 启动server-pay服务(服务提供者)和server-hystrix服务(服务消费者)并注册到同一个注册中心;

8、 访问localhost:8021/exception;


1、项目pom文件中引入feign客户端依赖

<!-- Feign客户端 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2、编写feign客户端接口,并配置fallback回调方法的类

@FeignClient(value = "server-pay",fallback = FeignClientImpl.class)
public interface IFeignClient {

    @GetMapping("/exception")
    String exception();

}

3、编写controller,使用feign客户端进行RPC远程过程调用

@RestController
public class ClientController {

    @Resource
    private IFeignClient iFeignClient;

    @GetMapping("/exception")
    public String callPay(){
        return iFeignClient.exception();
    }
}

4、实现feign客户端接口方法,并实现feign客户端接口中的每个接口方法作为fallback回调方法,返回托底数据,将类交给spring管理

@Component
public class FeignClientImpl implements IFeignClient {
    @Override
    public String exception() {
        return "服务忙,请稍后";
    }
}

5、配置文件开启feign客户端的熔断机制

#设置服务端口号
server:
 port: 8021

spring:
  application:
    #设置应用名称
    name: server-hystrix
  cloud:
    #    zookeeper:
    #      #配置连接注册中心地址
    #      connect-string: localhost:2181
    consul:
      host: localhost
      port: 8500
      discovery:
        # 重新指定健康检查机制的接口
        health-check-path: /healthcheck
        # 检查时间间隔
        health-check-interval: 30s

#开启FeignClient熔断机制
feign:
  hystrix:
    enabled: true

6、在server-pay服务中编写接口方法供服务消费者使用

@RestController
@RequestMapping("/")
public class PayController {
    @Value("${server.port}")
    private int port;

    @GetMapping("/healthcheck")
    public String health(){
        return "health";
    }

    @GetMapping("/exception")
    public String exception() {
        int i=10/0;
        return "当前端口为:" + port + "this is pay server return exception";
    }
}

7、启动server-pay服务(服务提供者)和server-hystrix服务(服务消费者)并注册到同一个注册中心

*

8、访问localhost:8021/exception

*

由于服务提供者内部逻辑出现错误,集成于feign客户端的hystrix触发熔断机制,返回fallback设置对应的方法里的兜底数据

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: