SpringCloud分布式项目下feign的使用示例详解

 更新时间:2023年07月25日 11:46:12   作者:零维展开智子  
这篇文章主要介绍了SpringCloud分布式项目下feign的使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

新建一个feign的微服务(后面统称为A),其他项目要使用利用maven导入该服务模块的依赖就行了

导入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

定义接口

@FeignClient(value = "leadnews-article")
public interface IArticleClient {
    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto dto) ;
}

另外一个微服务(value的值对应)的接口实现(后面统称为B),哪个微服务去实现这个接口,value就是什么

@RestController
public class ArticleClient implements IArticleClient {
    @Autowired
    private ApArticleService apArticleService;
    @Override
    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto dto) {
        return apArticleService.saveArticle(dto);
    }
}

接着在B项目中写mapper、service层的实现即可

C项目要访问B项目的接口这个时候直接访问A项目的接口就行了

A项目只是一个桥梁,C项目中利用

使用时自动注入即可,但是记得要导入A项目的依赖

@Autowired
    private IArticleClient articleClient;

主启动类还需要添加注解 

服务降级处理

  • 服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
  • 服务降级虽然会导致请求失败,但是不会导致阻塞。

feign-api编写降级逻辑

 
/**
 * feign失败配置
 * @author itheima
 */
@Component
public class IArticleClientFallback implements IArticleClient {
    @Override
    public ResponseResult saveArticle(ArticleDto dto)  {
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR,"获取数据失败");
    }
}

 在C微服务中添加类,扫描降级代码类的包

这里包路径是你的

@Configuration
@ComponentScan("com.heima.apis.article.fallback")
public class InitConfig {
}

在之前A服务的接口上添加这个 

C服务开启降级

nacos配置中心里添加如下内容,开启服务降级,也可以指定服务响应的超时的时间

feign:
  # 开启feign对hystrix熔断降级的支持
  hystrix:
    enabled: true
  # 修改调用超时时间
  client:
    config:
      default:
        connectTimeout: 2000
        readTimeout: 2000

到此这篇关于SpringCloud分布式项目下feign的使用的文章就介绍到这了,更多相关SpringCloud feign使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解定时任务框架Quartz的使用

    详解定时任务框架Quartz的使用

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,本文就来带大家聊聊它的具体使用
    2023-02-02
  • 获取JsonObject某一未知key的值操作

    获取JsonObject某一未知key的值操作

    这篇文章主要介绍了获取JsonObject某一未知key的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 详解Java 自动装箱与自动拆箱

    详解Java 自动装箱与自动拆箱

    这篇文章主要介绍了Java 自动装箱与自动拆箱的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-09-09
  • java实现快速排序图文详解

    java实现快速排序图文详解

    网上关于快速排序的算法原理和算法实现都比较多,不过java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议
    2021-08-08
  • 第三方网站微信登录java代码实现

    第三方网站微信登录java代码实现

    这篇文章主要为大家详细介绍了第三方网站微信登录的java代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码

    SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码

    本文主要介绍了SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Springboot 多级缓存设计与实现方案

    Springboot 多级缓存设计与实现方案

    多级缓存是提升高并发系统性能的关键策略之一,它不仅能够减少系统的响应时间,提高用户体验,还能有效降低后端系统的负载,防止系统过载,这篇文章主要介绍了Springboot 多级缓存设计与实现,需要的朋友可以参考下
    2024-02-02
  • 使用Feign实现微服务间文件下载

    使用Feign实现微服务间文件下载

    这篇文章主要为大家详细介绍了使用Feign实现微服务间文件下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • SpringBoot实现返回值数据脱敏的步骤详解

    SpringBoot实现返回值数据脱敏的步骤详解

    这篇文章主要给大家介绍一下SpringBoot实现返回值数据脱敏的步骤,文章通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Spring Boot监控SQL运行情况的全过程

    Spring Boot监控SQL运行情况的全过程

    这篇文章主要给大家介绍了关于Spring Boot监控SQL运行情况的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用SpringBoot具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02

最新评论