feign的fallback操作
Fallback可以帮助我们在使用Feign去调用另外一个服务时,如果出现了问题,走服务降级,返回一个错误数据,避免功能因为一个服务出现问题,全部失效。
依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类上添加注解:
//开启Feign调用, 扫描feign接口所在包
@EnableFeignClients(basePackages = {"com.xx.feign"})
1。创建一个类,去实现自己的feign接口,并实现里面的方法,并用@Component交给spring管理
例如
/**
* 当feign调用出问题了, 会自动执行这里, 防止调用报错中断执行
* 这里都是给feign调用的错误兜底的方法
* 注意: 兜底方法的路径不能和feign接口相同, 因为springMvc不允许同一个访问路径有两个方法
* @author zhaojian
*/
@Component
@RequestMapping("/fallback")
public class SearchFeignFallBack implements SearchFeign { @Override
public String index() {
return "feign调用出问题了";
} @Override
public Customer findById(Integer id) {
return new Customer(1, "feign调用有问题");
} @Override
public Customer findCustomer(Integer id, String name) {
return new Customer(1, "feign调用有问题");
} @Override
public Customer save(Customer customer) {
return new Customer(1, "feign调用有问题");
} }
修改之前自己写的feign接口,在注解中,添加fallback类名.class
例如:
/**
* feign接口, FeignClient后面指定被调用微服务的服务名
* @author zhaojian
*/
@FeignClient(value = "SEARCH", fallback = SearchFeignFallBack.class)
@RestController
public interface SearchFeign {
这个微服务的配置文件yml添加内容,如下:
server:
port: 9001
#指定服务的名称
spring:
application:
name: CUSTOMER
# 指定Eureka服务地址
eureka:
client:
service-url:
defaultZone: http://root:root@localhost:8761/eureka
# 指定具体服务的负载均衡策略
SEARCH:
ribbon:
# 具体负载均衡使用的类
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule
feign:
hystrix:
enabled: true
然后再controller,用feign远程调用出现问题时,会走刚才写的fallback降级方法
feign的fallback操作的更多相关文章
- SpringCloud Feign 之 Fallback初体验
SpringCloud Feign 之 Fallback初体验 在微服务框架SpringCloud中,Feign是其中非常重要且常用的组件.Feign是声明式,模板化的HTTP客户端,可以帮助我们更方 ...
- 关于Feign的Fallback处理
Feign的不恰当的fallback Feign的坑不少,特别与Hystrix集成之后. 在微服务引入Feign后,上线不久后便发现,对于一个简单的查询类调用,在下游返回正常的"404-资源 ...
- No fallback instance of type class found for feign client user-service(转)
1.错误日志 在 feign 开启熔断,配置 fallback 类,实现当前接口的实现类时,报错信息如下: Error starting ApplicationContext. To display ...
- Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现
作者 | Spring Cloud Alibaba 高级开发工程师洛夜 来自公众号阿里巴巴中间件投稿 前段时间 Hystrix 宣布不再维护之后(Hystrix 停止开发...Spring Cloud ...
- SpringCloud Feign 之 超时重试次数探究
SpringCloud Feign 之 超时重试次数探究 上篇文章,我们对Feign的fallback有一个初步的体验,在这里我们回顾一下,Fallback主要是用来解决依赖的服务不可用或者调用服务失 ...
- feign使用hystrix熔断的配置
熔断器hystrix 在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的. Hystrix 可以让我们在分布式系统中对服务间的调用 ...
- Feign使用Hystrix
Feign使用Hystrix开发步骤 1.导入依赖spring-cloud-starter-hystrix 2.消费启动类开启@EnableCircuitBreaker 3.配置yml文件feign. ...
- springcloud(七) feign + Hystrix 整合 、
之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和 RestTemplate + Hystrix ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用. ...
- SpringCloud系列十六:Feign使用Hystrix
1. 回顾 上文讲解了使用注解@HystrixCommand的fallbackMethod属性实现回退.然而,Feign是以接口形式工作的, 它没有方法体,前文讲解的方式显然不适用与Feign. 事实 ...
随机推荐
- VSCode配置远程免密登陆
生成秘钥 在本地pc的cmd窗口输入:ssh-keygen -t rsa 生成秘钥 C:\Users\NZY/.ssh/id_rsa.pub 该目录就是生成的秘钥要保存的地方(以我自己的电脑为例) 将 ...
- 重学ES系列之新型数据结构Map应用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python小题目练习(十)
题目:根据生日判断星座 需求:实现如下图所示结果 代码展示: """Author:mllContent:根据生日判断星座Date:2020-11-23"&quo ...
- CF333E Summer Earnings
CF333E Summer Earnings 题目 https://codeforces.com/problemset/problem/333/E 题解 思路 知识点:枚举,图论,位运算. 题目要求从 ...
- Redis 笔记 01:入门篇
Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
- 如何在.Net Framework应用中请求HTTP2站点
背景介绍 本文的需求背景是对接苹果公司的推送服务(APNS),苹果在安全方面比较积极,已经严格限制API只支持HTTP2.但是我这里的应用目前仍然是.NET Framework平台,所以必须寻找一种解 ...
- UI自动化测试执行问题总结
------------恢复内容开始------------ 
众所周知,Multism是一款强大的电路仿真软件,学习电子电路的同学都会接触到. 但是,这软件不支持Linux.(这就很魂淡了啊) 我的主力机是Linux,不能进行电路仿真成了学习的最大障碍. 使用w ...