**
学习笔记视频:https://www.bilibili.com/video/BV1VW4y1o7n5
本课程使用的是目前最新版本2022.0.0.0-RC2。基于Spring Boot 3.0与JDK20的开发环境。
课程内容涵盖了SpringCloudAlibaba所有的技术点,主要讲述包括Nacos Discovery、Nacos
Config、OpenFeign、Spring Cloud Loadbalancer、Spring Cloud
**
4 OpenFeign与负载均衡
前面消费者对于微服务的消费是通过RestTemplate完成的,这种方式的弊端是很明显的:
- 消费者对提供者的调用无法与业务接口完全吻合。例如,原本Service接口中的方法是有返回值的,但经过RestTemplate相关API调用后没有了其返回值,最终执行是否成功用户并不清楚。再例如RestTemplate的对数据的删除与修改操作方法都没有返回值。
- 代码编写不方便,不直观。提供者原本是按照业务接口提供服务的,而经过RestTemplate一转手,变为了URL,使得程序员在编写消费者对提供者的调用代码时,变得不直接、不明了。没有直接通过业务接口调用方便、清晰。
4.1 概述
4.1.1 OpenFeign简介
【翻译】声明式REST客户端:Feign通过使用JAX-RS(Java Api eXtensions of RESTful web Servivces)或SpringMVC注解的修饰方式,生成接口的动态实现。
【解析】Feign,假装、伪装。OpenFeign可以将提供者提供的Restful服务伪装为接口进行消费,消费者只需使用“feign接口 + 注解”的方式即可直接调用提供者提供的Restful服务,而无需再使用RestTemplate。
【总结】对于OpenFeign,可简单总结为以下几点:
- OpenFeign只涉及Consumer与Provider无关。因为其是用于Consumer调用Provider的
- OpenFeign仅仅就是一个伪客户端,其不会对请求做任务的处理
- OpenFeign是通过注解的方式实现RESTful请求的