【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)
基本概念
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 主要有三步。
- 需要在启动类加 @EnableFeignClients 启用 Feign。
- 可以定义 Feign 的调用客户端了,需要在接口上增加 @FeignClient 注解。
- 可以直接通过客户端访问接口。
服务消费者依赖了 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分别有哪些组件和作用,众多组件中如何做技术选型?
本文内容到此结束了,
如有收获欢迎点赞【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)相关推荐
- 云原生核心技术之Istio服务网格核心理论概念(一)
Istio服务网格核心理论概念 文章目录 Istio服务网格核心理论概念 1.Service Mesh基本概念 1.1.什么是Service Mesh服务网格 1.2.服务网格的特点 1.3.服务网格 ...
- 云原生存储系列文章(一):云原生应用的基石
作者| 郡宝 阿里云技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:存储服务支撑了应用的状态.数据的持久化,是计算机系统中的重要组成部分,也是所有应用得以运行的基础,其重要性不言而喻.在存储 ...
- 【云原生 | Kubernetes 系列】---Skywalking部署和监控
[云原生 | Kubernetes 系列]-Skywalking部署和监控 1. 分布式链路追踪概念 在较大的web集群和微服务环境中,客户端的一次请求可能需要经过多个不同的模块,多个不同中间件,多个 ...
- 云原生时代,微服务如何演进?
简介:云原生时代,微服务和云原生会产生怎样的关系?云原生时代的微服务又有什么特点?当前有哪些比较活跃的微服务项目?阿里巴巴资深技术专家李响从微服务的生命周期.流量治理.编程模型以及可信安全4个方面,分 ...
- AI TALK | 云原生时代的微服务架构与关键技术
随着云原生与微服务技术的逐步发展,业界也逐步构建出一整套比较完整的微服务技术体系. 面向云原生时代,微服务架构是从业人员绕不开的一个话题,腾讯云AI&腾讯优图的内容风控安全审核能力也与微服务技 ...
- 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装
云原生|K8s系列第1篇目录 1.先从K8s不是什么讲起 2.K8s是什么及核心基础概念 2.1 Container容器 2.2 Pod 2.3 Node 2.4 Label 2.5 Annotati ...
- 云原生架构下日志服务数据预处理
简介:本篇实践将以某家国际教育机构为例,为大家详细介绍云原生架构下日志服务数据预处理以及对应的解决方案和最佳实践操作手册,方便用户快速对号入座,解决云原生架构下的常见日志难题. 直达最佳实践:[htt ...
- cube一站式云原生机器学习平台-推理服务的工程化加速
全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言:cube是tme开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征:数据源管理,支持结构数据和媒体标注数据管理:在线开发, ...
- “云原生”、“大数据”、“云计算”的结合——阿里云的云原生大数据计算服务MaxCompute
前言:在讨论"云原生大数据计算服务"之前,我们先将这个名词进行拆分,分别讨论一下"云原生"."大数据"."计算服务",从 ...
- cube开源一站式云原生机器学习平台-推理服务的工程化加速
全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言:cube是tme开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征:数据源管理,支持结构数据和媒体标注数据管理:在线开发, ...
最新文章
- next() 与 nextLine() 区别
- HashMap源码学习
- PHP 7.2 新功能介绍
- python调用mysql数据库sql语句过长有问题吗_python操作mysql数据库,一次性执行多条语句不执行...
- 自然语言处理——语言模型
- C# 反射机制(转)
- 为何python不好找工作-听说自学Python不好找工作,小白要如何学Python?
- Linux两台主机之间建立信任
- git merge 暂存区_经典好文:一篇文章,教你学会Git
- 高级电工电拖实训考核装置
- smart3D的初探索
- Flutter 旋转动画
- 闲鱼双11全链路营销体系初体验
- 纯 CSS 中的简单响应式汉堡菜单
- 精选101个中国风PPT模板
- maven项目,pom.xml文件变成小虫子(蜘蛛)解决办法
- 给我5个带”一“字的成语
- 笨方法学Python 练习16
- (PMP)第9章-----项目资源管理
- GDI+ 绘制砂岩含量图版
热门文章