我是靠谱客的博主 拼搏皮卡丘,这篇文章主要介绍Spring Cloud调用组件之Feign和熔断器的简单应用,现在分享给大家,希望可以做个参考。

这篇讲的是Feign使用如何去调用已经注册的服务,之前有一篇文章介绍如何让服务在Nacos上注册:https://blog.csdn.net/qq_39693164/article/details/108304646

前提条件:把相互调用服务在Nacos上进行注册

Feigin和熔断器的关系我就简单直白点说把,既然要调用已经在Nacos上注册的服务,就需要去拿到,在拿到的同时有可能会发生宕机或者其他因素过不去的时候就需要熔断器来做接下来的处理,从而避免差的用户体验。

第一:引入依赖

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
<!--hystrix熔断器依赖,主要是用 @HystrixCommand --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <!--服务调用--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.2.0.RELEASE</version> </dependency>

第二:接着在调用端服务的配置文件中启动熔断机制

复制代码
1
2
3
#开启熔断机制 feign.hystrix.enabled=true #设置hystrix超时时间,默认为1000ms

第三:调用端服务启动类添加一个服务发现的一个注解@EnableFeignClients //服务调用

第四:之后就可以写调用想要的服务进行写代码了。下面是个例子片段

调用业务的一个clss类

  • @FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class) //调用的服务名称
  • 使用这个注解,name = "service-vod"   :是调用具体哪个服务的服务名称
  •  @DeleteMapping("/eduvod/video/removeAlyVideo/{id}"):/eduvod/video/removeAlyVideo/{id}    这个是调用具体服务的具体方法的完整路径
  • fallback = VodFileDegradeFeignClient.class:如果想要调用的服务挂了,就会走这步去到VodFileDegradeFeignClient.clss去走里面的机制。

注:@PathVariable("id")  这个必须要指定一个名称,不写会报错,和上方的id一致就可以了

复制代码
1
2
3
4
5
6
7
@FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class) //调用的服务名称 @Component public interface VodClient { //@PathVariable注解一定要指定参数名称,否则出错 @DeleteMapping("/eduvod/video/removeAlyVideo/{id}") public R removeAlyVideo(@PathVariable("id") String id); }
复制代码
1
2
3
4
5
6
7
@Component public class VodFileDegradeFeignClient implements VodClient { //出错之后会执行 @Override public R removeAlyVideo(String id) { return R.error().message("删除视频出错了"); }

在之后就是在Controller代码中注入这个类调用这个类中的方法,传入值就可以实现了

ok,是不是挺简单的呢,觉得起到帮助了点个赞再走哦~

 

最后

以上就是拼搏皮卡丘最近收集整理的关于Spring Cloud调用组件之Feign和熔断器的简单应用的全部内容,更多相关Spring内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部