概述
这篇讲的是Feign使用如何去调用已经注册的服务,之前有一篇文章介绍如何让服务在Nacos上注册:https://blog.csdn.net/qq_39693164/article/details/108304646
前提条件:把相互调用服务在Nacos上进行注册
Feigin和熔断器的关系我就简单直白点说把,既然要调用已经在Nacos上注册的服务,就需要去拿到,在拿到的同时有可能会发生宕机或者其他因素过不去的时候就需要熔断器来做接下来的处理,从而避免差的用户体验。
第一:引入依赖
<!--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>
第二:接着在调用端服务的配置文件中启动熔断机制
#开启熔断机制
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一致就可以了
@FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class) //调用的服务名称
@Component
public interface VodClient {
//@PathVariable注解一定要指定参数名称,否则出错
@DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
public R removeAlyVideo(@PathVariable("id") String id);
}
@Component
public class VodFileDegradeFeignClient implements VodClient {
//出错之后会执行
@Override
public R removeAlyVideo(String id) {
return R.error().message("删除视频出错了");
}
在之后就是在Controller代码中注入这个类并调用这个类中的方法,传入值就可以实现了
ok,是不是挺简单的呢,觉得起到帮助了点个赞再走哦~
最后
以上就是拼搏皮卡丘为你收集整理的Spring Cloud调用组件之Feign和熔断器的简单应用的全部内容,希望文章能够帮你解决Spring Cloud调用组件之Feign和熔断器的简单应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复