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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java设计模式之适配器模式详解

    Java设计模式之适配器模式详解

    这篇文章主要介绍了Java设计模式之适配器模式详解,适配器模式将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作,需要的朋友可以参考下
    2023-09-09
  • 详解elasticsearch之metric聚合实现示例

    详解elasticsearch之metric聚合实现示例

    这篇文章主要为大家介绍了elasticsearch之metric聚合实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java 汇编JVM编写jasmin程序的操作方法

    Java 汇编JVM编写jasmin程序的操作方法

    这篇文章主要介绍了Java 汇编JVM编写jasmin程序的操作方法,本文通过几个示例讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 详细分析Java内部类——局部内部类

    详细分析Java内部类——局部内部类

    这篇文章主要介绍了Java局部内部类的相关资料,帮助大家更好的理解和学习Java 内部类的知识,感兴趣的朋友可以了解下
    2020-08-08
  • SpringMVC实现自定义类型转换器

    SpringMVC实现自定义类型转换器

    本篇文章主要介绍了SpringMVC实现自定义类型转换器 ,详细的介绍了自定义类型转换器的用法和好处,有兴趣的可以了解一下。
    2017-04-04
  • Java循环对bean的属性进行赋值的实现

    Java循环对bean的属性进行赋值的实现

    本文主要介绍了Java循环对bean的属性进行赋值,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Spring中配置ContextLoaderListener方式

    Spring中配置ContextLoaderListener方式

    这篇文章主要介绍了Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • maven安装jar包到本地的操作方法

    maven安装jar包到本地的操作方法

    这篇文章主要介绍了maven安装jar包到本地,执行该命令后,Maven 会将该 JAR 文件安装到你本地 Maven 仓库中,需要的朋友可以参考下
    2007-01-01
  • 详解如何提升SpringBoot项目的吞吐量

    详解如何提升SpringBoot项目的吞吐量

    吞吐量是指系统在单位时间内成功处理请求的数量,当吞吐量不足以应对业务需求时,会导致请求Pile Up的情况发生,使系统不可用甚至宕机,所以提高吞吐量是保证系统可用性的有效手段之一,本文就给大家讲讲如何提升SpringBoot项目的吞吐量
    2023-07-07
  • Mybatis 返回值类型和参数传递的配置方法

    Mybatis 返回值类型和参数传递的配置方法

    在 MyBatis 中,返回值类型和参数传递是 Mapper 接口中至关重要的两个方面,正确理解和使用它们可以帮助我们高效、准确地进行数据库操作,接下来通过本文给大家介绍Mybatis 返回值类型和参数传递的配置方法,感兴趣的朋友跟随小编一起看看吧
    2024-08-08

最新评论