网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
问题描述
feign的代码
package com.tianju.order.feign;
import com.tianju.order.feign.fallback.StorageFallback;
import com.tinaju.common.dto.GoodsDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "storage-server",fallback = StorageFallback.class)
public interface StorageFeign {
@GetMapping("/findByCode")
GoodsDto findByCommodityCode(@RequestParam("code") String code);
@GetMapping("/subByCode")
boolean subByCommodityCode(@RequestParam("code") String code,
@RequestParam("nums") Integer nums);
}
feign的fallback方法
package com.tianju.order.feign.fallback;
import com.tianju.order.feign.StorageFeign;
import com.tinaju.common.dto.GoodsDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class StorageFallback implements StorageFeign {
@Override
public GoodsDto findByCommodityCode(String code) {
return null;
}
@Override
public boolean subByCommodityCode(String code, Integer nums) {
log.info("调用减库存方法失败,商品编码为{},数量为{}",code,nums);
return false;
}
}
问题分析
查了一下别人的解决方案,有些人说是要打开hystrix的支持
# 配置 Feign 远程调用
feign:
hystrix:
# 为 Feign 开启 Hystrix熔断机制,就可以使用回调
enabled: true
我的配置文件里面确实没有加feig相关的依赖,但是我并没有是有hystrix,突然想到这个fallback既然是一个降级的方法,那必然需要有人负责调用它,而hystrix作为熔断降级的组件,应该就是负责这件事情的。
所以需要引入熔断降级的相关组件。
解决方案
我这里使用阿里巴巴的sentinel熔断降级工具,具体解决该问题的流程如下:
1.引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
![img](https://img-blog.csdnimg.cn/img_convert/ef5971827f271a9b8cca0a1cb9b370ed.png)
![img](https://img-blog.csdnimg.cn/img_convert/4833110c4b62bf80da7c64be4b80771e.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
bbs.csdn.net/topics/618631832)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**