首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)

【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)

作者头像
共饮一杯无
发布2022-11-28 15:52:59
2890
发布2022-11-28 15:52:59
举报

基本概念

Spring Cloud OpenFeign 并不是独立的技术。它底层基于 Netflix Feign,Netflix Feign 是 Netflix 设计的开源的声明式 WebService 客户端,用于简化服务间通信。Netflix Feign 采用“接口+注解”的方式开发,通过模仿 RPC 的客户端与服务器模式(CS),采用接口方式开发来屏蔽网络通信的细节。原生的 Feign 在使用层面已经很方便了,但是在 Spring Cloud 体系中却不那么适用,所以官方团队在 Feign 的基础上进行扩展,推出了 spring-cloud-openfeign,目的是能够让广大的开发者在 Spring Cloud 体系中使用 Feign 变得更加简单。 我们开发的 API 都用的是 Spring MVC 的注解,比如 RequestMapping 等,Feign 的注解是单独的一套,所以我们编写调用 Client 接口时,需要根据已有的接口来编写,在 spring-cloud-openfeign 中,实现了 Spring MVC 的一套注解,调用方 Client 接口中的注解和 API 方可以一致,非常方便。

使用步骤

在 Spring Cloud 中使用 Feign 主要有三步。

  1. 需要在启动类加 @EnableFeignClients 启用 Feign。
  2. 可以定义 Feign 的调用客户端了,需要在接口上增加 @FeignClient 注解。
  3. 可以直接通过客户端访问接口。

服务消费者依赖了 spring-cloud-starter-openfeign,在 Spring Boot 工程会自动引入 Spring Cloud OpenFeign 与 Netflix Feign 的 Jar 包。这里有个重要细节,当我们引入 OpenFeign 的时候,在 Maven 依赖中会出现 netflix-ribbon 负载均衡器的身影。

在这里插入图片描述
在这里插入图片描述

由此可以知道OpenFeign 为了保证通信高可用,底层也是采用 Ribbon 实现负载均衡,其原理与 Ribbon+RestTemplate 完全相同,只不过相较 RestTemplate,OpenFeign 封装度更高罢了。

相关文章: 【云原生】SpringCloud系列之客户端负载均衡Ribbon 微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?

本文内容到此结束了, 如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。 如有错误❌疑问💬欢迎各位大佬指出。 主页共饮一杯无的博客汇总👨‍💻 保持热爱,奔赴下一场山海。🏃🏃🏃

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本概念
  • 使用步骤
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档