springboot整合feign完成服务间通信功能_GIS数据共享

springboot整合feign完成服务间通信功能

2023-08-05 19:50:35  浏览:2559  作者:管理员
基本概念Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spr...

基本概念

Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。

Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。

Spring Cloud对Feign进行了增强,使Feign支持了Spring

MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。

Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。

Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。

springboot整合openfeign

1.1、需求

service_edu服务调用service_vod服务的方法


1.2、引入依赖

<!--服务调用-->
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-openfeign</artifactId>
 </dependency>


1.3、调用端服务的启动类添加注解

@EnableFeignClients

在这里插入图片描述

1.4、创建FeignClient接口

方法以及参数与service-vod服务的方法参数一致

@FeignClient(name = "service-vod") //调用的服务名称
@Component
public interface VodClient {
    //定义调用的方法路径
    //根据视频id删除阿里云视频
    //@PathVariable注解一定要指定参数名称,否则出错
    @DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
    public R removeAlyVideo(@PathVariable("id") String id);
}
1.5、进行服务间通信,调用方法
//注入vodClient
@Autowired
private VodClient vodClient;

 //删除小节
 //删除小节,删除对应阿里云视频
 @DeleteMapping("{id}")
 public R deleteVideo(@PathVariable String id) {
     //根据小节id获取视频id,调用方法实现视频删除
     EduVideo eduVideo = videoService.getById(id);
     String videoSourceId = eduVideo.getVideoSourceId();
     //判断小节里面是否有视频id
     if(!StringUtils.isEmpty(videoSourceId)) {
         //根据视频id,远程调用实现视频删除
         R result = vodClient.removeAlyVideo(videoSourceId);
         if(result.getCode() == 20001) {
             throw new GuliException(20001,"删除视频失败,熔断器...");
         }
     }
     //删除小节
     videoService.removeById(id);
     return R.ok();
 }


扫码查看

评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机内容】

返回顶部