微服务:3-1-2 服务调用-OpenFeign

1、OpenFeign概述

1、OpenFeign是什么?

1、OpenFeign是什么?
openfeign1

OpenFeign整合了Ribbon

2、OpenFeign能干什么?
openfeign2

3、Feign和OpenFeign的区别
openfeign3

2、OpenFeign使用步骤

注册中心、服务提供者、消费者三者交互图:
openfeign4

1、接口+注解

微服务调用接口+@FeignClient
feign在消费端使用

2、使用步骤

1、建module
新建cloud-consumer-feign-order80

2、改POM
openfeign5

3、写YML
openfeign是一个客户端,不用整合进微服务,不用在yml中配置
openfeign6

4、主启动
在主启动类使用注解@EnableFeignClients激活并开启Feign
openfeign7

5、业务类
(1)业务逻辑接口+@FeignClient配置调用provider的服务
主启动类使用注解@EnableFeignClients激活开启Feign功能,
@FeignClient标注接口使用Feign功能

(2)新建PaymentFeignService接口,并新增注解@FeignClient,并指定微服务
openfeign8

(3)控制层Controller
openfeign9

6、测试
(1)启动2个Eureka集群7001和7002

(2)启动2个微服务提供者8001和8002

(3)启动OpenFeign80

(4)测试接口
openfeign10
微服务提供者8001和8002轮询方式提供服务

Feign自带负载均衡配置项,因为集合了Ribbon

7、小总结
openfeign11

3、OpenFeign超时控制

Feign客户端请求时默认等待1秒钟,但是服务端响应处理超过1秒钟的话,Feign客户端就会超时报错。

为了避免这种情况,我们可以设置Feign客户端的超时控制

OpenFeign集成了Ribbon,由配置Ribbon来实现
openfeign12

4、OpenFeign日志打印功能

Feign提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解Feign中HTTP请求的细节,即对Feign接口的调用用情况进行监控和输出。

1、日志级别

1、None:默认的,不显示任何日志

2、Basic:仅记录请求方法、URL、响应状态码及执行时间

3、Headers:除了Basic中定义的信息外,还有请求还有响应头信息

4、Full:除了Headers中定义的信息外,还有请求和响应的正文及元数据

2、配置日志Bean

新建package,写一个配置类,设置日志级别为FULL
openfeign13

3、yml文件开启日志的Feign客户端

openfeign14

调用接口后,可在控制台看到详细日志