SpringCloud 微服务接口调用组件 - OpenFeign 简介

OpenFeign是一个声明式接口客户端,用于简化微服务间的接口调用。它允许开发者通过注解定义接口,实现远程服务调用如同调用本地方法一般。本文介绍了OpenFeign的基本概念、与SpringMVC的关系、@FeignClient的配置方式以及在微服务架构中的作用和可能带来的问题。
摘要由CSDN通过智能技术生成

版本介绍

本专栏所有文章使用的版本均为 SpringCloud 2020.0.5、SpringBoot 2.5.0

OpenFeign 简介

OpenFeign 是一个声明式的 Rest 接口客户端,就把它理解成 HttpClient!能够实现服务接口的远程调用。也就是说假设现在你的微服务集群有 A,B 两个服务,那么你可以在 A 服务中定义一个接口,通过 OpenFeign 的相关注解,它能够帮你实现调用 A 的接口方法(interface)会自动调用远程的 B 服务暴露的 Rest 接口,使得 A 调用远程服务 B 的接口就像在调用本地方法一样。示例代码:

@FeignClient(
    contextId = "AuthClient",
    name = "AUTH",//注册中心的服务名
    path = "/auth",//项目路径前缀,没有就不填
    configuration = {FeignClientDecoderConfiguration.class, FeignRequestInterceptor.class}//自定义的配置
)
public interface AuthClient {

  @GetMapping("/getReviewerIds")
  List<Long> getReviewerIds(@RequestParam("adminId") Long adminId);
}
复制代码

这样我们从 Spring 中拿到 Bean 调用 getReviewerIds 方法,即可请求到远程服务 AUTH 暴露的 Rest 接口。

@Autowired private AuthClient client;
public void demo(){
    List<Long> reviewerIds = client.getReviewerIds(1L);
}
复制代码

为什么要用 OpenFeign

我始终坚持一个理念,那就是我们用技术一定不要为了用而用,要知道用了有什么好处,解决了什么问题,又引入了什么问题(自己学习除外)。

如果你一直投身于一个涉及业务交互的自研产品,那么大概率会体会到一个项目的演变过程,项目初期单体应用已经完全能够满足业务需求,随着业务量不断扩大,业务功能不断迭代。我们需要对一个庞大的系统进行业务模块的拆分、甚至系统拆分。如下图

当拆分出多个系统时就会涉及到系统之间的调用,想一想在 Feign、OpenFeign 之前,我们要调用远程接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值