哈喽各位同学们大家好呀,今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节二的“Spring Cloud声明式调用客户端Feign ”干货总结~是一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:Spring Cloud声明式调用客户端Feign
课程地址:https://developer.aliyun.com/learning/course/60/detail/1087
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
Spring Cloud声明式调用客户端Feign
(一)Spring Cloud声明式调用客户端Feign
1、Spring Cloud 调用方Feign
微服务架构中非常重要的技术叫声明式客户调动端Feign,Feign主要是做快速构建微服务API的调用工作,组件是非常重要的。
如果做微服务开发,开发出来一个订单的API或者注册的API给客户端用,客户端自己使用原始的HTTP库等等相关的库去做请求调用是可以的,但相对来说比较麻烦,还有一种情况就是构建这种复杂的微服务架构,会面临一个问题,微服务可能要调别的微服务,这时候调用,不可能所有代码全部用原生基础的原始的代码来进行构建,这时候 Spring cloud为了方便微服API的调用,把整个API的调用工作在客户端代码大大简化,自己封装了一套工具框架。
2、Spring Cloud 调用方Feign
1. 调用方,简化微服务API调用
2. Feign是一种声明式、模板化的HTTP客户端。
3. 简化Http客户端开发
4. 只需要创建一个接口+@注解
5. Feign 注解和JAX-RS注解。
6. Feign支持可插拔的编码器和解码器
7. Feign默认集成了Ribbon,并和Eureka结合
8. Eclipse或者 IDEA实战
Feign本身叫声明式调用,通过声明与客户端代理,使用简单的几个注解就能完成一个后端的微服务API调用工作,微服务框架本身它实际的设计思想是去简化微服务开发工程师的一个工作。
因为整个Spring Cloud体系,包含的数10种框架,都在不断的进行迭代发展,里面微服务客户端的调用工具还可以继续使用,但部分组件,有更多的选择,整个Spring Cloud生态是变得越来越丰富,越来越强大,利于去做一个多样化微服务架构的设计。
具体看Feign的使用,参考前几次微服务项目创建的经验,可以用Eclipse、IDEA,也可以用在线的网站向导去生成一个Spring Cloud的一个项目。
演示操作如下
为了方便开发,要点选添加Dev tool式组件web项,主要作用是因为要调后台客户端services,更多的时候希望包容RecAPI在本地,通过本地的软件RecAPI底层代理来调远端的后台的微服务,形成一个调动链,本地测试方便。还有Eureka Clie,因为依赖的是Feign是调用端,Feign一定要加进来,版本选2.3.7往后选,不用最新的,因为一般公司的项目迭代没有那么快,大部分企业可能还停留在二点零点几,特别新版本,企业是很难使用。
配置文件作为一个调用端,它实际和微服务端配置基本上差不多,直接复制微服务的,拷贝过来,端口因为都在同一台机器上,所以里面端口尽量不要重复,9001表示调动端的代码,项目改成Feign Client,端口9001,要去注册中心查,因为要查找后台服务当前在线的微服务集群信息,地址也很重要,需要打开,还要加几个注解,作为客户端和数据中心首先打交道,接下来进行调用。
需要建一个代理接口包含一个声明,不包含方法体,具体如下:
声明一个客户端的接口,通过依赖注入,Spring框架自动会给装配一个客户端的代理对象,然后通过代理对象来调查,还有Feign Client要给一个服务名,名字要统一,具体操作如下:
还有地址偏移要匹配,名字与服务端统一,不统一也可以允许一次再封装。
通过代理调用,浏览器测试,具体操作如下:
先启动注册中心测试保证微服务再到客户端: