开发者学堂课程【微服务框架 Spring Cloud 快速入门:Feign 工程构建】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/614/detail/9360
Feign 工程构建
一、Feign 使用步骤
Feign 的构建:面向接口调用微服务。
1. 参考microservicecloud-consumer-dept-80新建
microservicecloud-consumer-dept-feign
根据前面的内容用之前的步骤将80的内容拷贝到今天的工程,之后修改启动类名字,DeptConsumer80_Feign_App
后发现是microservicecloud-consumer-dept-80 [boot][devtools]
它的相关内容,之后将80内的文件复制粘贴,在将文件myrule文件删除
2. microservicecloud-consumer-dept-feign工程pom.xml修改,主要添加对feign的支持
发现文件报错,在这里参考80,将所需的编程语言拷贝复制,在将一些语言删除,完成后发现 feign 的 pom 就需要添加一些对feign 的相关支持:
Feign 的相关内容:
org.springframework.cloudspring-cloud-starter-feign
3. 修改microservicecloud-api工程
(1)POM
首先找到相关的 dependency,把要修改的内容
org.springframework.cloud
spring-cloud-starter-feign
添加相关得支持添加入工程。
(2)新建 DeptClientService 接口并新增注解 @FeignClient
在 api 上新建一个 package,把 name 设置成 service,在这里添加接口
package com.atguigu.springcloud . service;
public interface DeptClientService
(这里直接增加接口)
{
public Dept get(@PathVariable("id") long id);
public List list();
public boolean add(Dept dept);
}
①
@FeignClient
②在这里又发现了新的注解 @FeignClient
这个接口,
@FeignClient(value = "MICROSERVICECLOUD-DEPT")public ()interface DeptclientService
{
面向接口的编码,
这个 feign 都是 client,一个接口使客户端变得更容易。
mvn clean
mvn instal
l
之后的 install 和 clean 保证了每次质量保证每次包都是最新的
因为这个 api 他是所有 nd 器接口的还有公共的一些顺序和配置,现在要面向接口编程进行微服务,由于考虑不止一个要调用的问题,所以一些通用公共的放在 vice 工程
4. 主要添加对feign的支持团修改microservicecloud-api工程Controller,添加上一步新建的DeptClientService接口
因为上一步修改完api。它的 feign 建在DeptController_Consumer.java
是之前版本是 rest 编程,要用
public class DeptController_Consumer{
@Autowired
private DeptclientService service;
接下来就是 controller 调用 service
5. DeptClientSemicroservicecloud-consumer-dept-feign工程修改主启动类--@EnableFeignClients
这里用@EnableFeignClients对@Feignclicnt
开启和启用
@EnableFqignclients(basePackages={ "com.atguigu.springcloud"})
(
cloud里面的学籍)
@ComponentScan( "com.atguigu.springcloud")
(
要访问的包)
6. 测试
(1)启动3个 eureka 集群
(2)启动3个部门微服务 8001/8002/8003
Feign 集成了 Ribbon
利用Ribbon维护了 MicroServiceCloud-Dept 的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与 Ribbon 不同的是,通过 feign 只需要定义服务绑定接口里以声明式的方法,优雅而简单的实现了服务调用 说明 feign 带着默认 ribbon 的轮询算法,启动以后等待注册。
(3)启动 Feign 自己启动
将七个微服务启动。
(4)http:/flocalhosticonsumerfdept/list
(5)Feign 自带负载均衡配置项
将地址刷新引进,发现因为通过 consumer 的访问地址完成了 feign 面向接口的微服务。
7. 总结
Feign通过接口的方法调用 Rest 服务(之前是 Ribbon+RestTemplate) ,该请求发送给Eureka 服务器(http://MICROSERVICECLOUD-DEPT/dept/list),
通过 Feign 直接找到服务接口,由于在进行服务调用的时候融合了 Ribbon 技术,所以也支持负载均衡作用。
public class DeptController_Consumer
{
@Autowired
private DeptClientService service;