目录
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设置对应的方法里的兜底数据
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: