Openfeign组件

1.什么feign组件 ----> Openfeign组件
feign(Netfilx) —>进入了维护状态 —> springCloud OpenFeign(spring) 这两个组件现在使用:特性 使用方式一致
简介:Rest Client: OpenFeign RestTemplate 作用一致都是一个http客户端
RestTemplate: spring框架封装httpClient对象
OpenFeign : 伪HttpClent客户端 他可以使服务器间通信更简单
简单:
1.使用写一个接口 加一个注解
2.调用服务代码 更加简单 自动完成数据传递过程中的对象转换 (可以使用springmvc的注解)
feign默认集成了Ribbon组件,默认实现了负载均衡的效果并且springcloud为feign添加了springmvc注解的支持

2.为什么使用 OpenFeign
a.RestTemplate 使用问题 : 1.路径写死, 2.不能自动转换响应结果为对应对象 3.必须集成Ribbon实现负载均衡
b.openFeign组件 解决RestTemplate实现服务间通信所有问题

3.项目引入文件

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

启动类 添加 @EnableFeignClients // 开启openfeign客户端调用

创建包 feignclient 用于存储需要调用的服务接口 接口类名为 需要调用的服务器的 业务PaymentController
接口名为 PaymentClient

在这里插入图片描述

调用时 跟我们正常调用接口一致
在这里插入图片描述

OpenFeign默认超时处理

1.默认的调用超时:使用openFeign组件在进行服务间通信时要求被调用服务必须在1S内给予响应,一旦业务逻辑时间超过1S,
OpenFeign组件将直接报错。

2.修改openFeign超时时长:
feign:
  client:
    config:
      cloud-paymen-service: # 需要设置的服务id  修改单个服务的超时时长
        connectTimeout: 5000
        readTimeout: 5000

feign.client.config.cloud-paymen-service.connectTimeout=5000
feign.client.config.cloud-paymen-service.readTimeout=5000

feign:
  client:
    config:
      default: # 修改全局服务超时时长
        connectTimeout: 5000
        readTimeout: 5000
        
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=5000

3.OpenFeign 日志展示
OpenFeign伪httpClient客户端对象,用来帮助我们完成服务间通信,底层用http协议 完成服务间调用
日志: OpenFeign为了方便在开发过程中调试OpenFeign数据传递,和响应处理,OpenFeign在设计时添加了日志功能,
默认OpenFeign日志功能需要手动开启的

logging:
  level: 
    default: debug
    # feign每一个客户端提供一个日志对象
    # NONE 不记录任何日志
    # BASIC 仅仅记录请求方法, url,响应状态码及执行时间
    # HEADERS 记录Basic级别的基础上,记录请求和响应的header
    # FULL 记录请求和响应的header,body和元数据  展示全部http协议状态

Ribbon配置

全局配置,对所有的@FeignClient生效

ribbon:  
  ReadTimeout: 10000  # 连接超时
  ConnectTimeout: 10000 # 读取超时
# 对【用户微服务】的ribbon配置,cloud-paymen-service对应注册中心的服务名
cloud-paymen-service:
  ribbon:
    OkToRetryOnAllOperations: true # 对所有操作请求都进行重试
    MaxAutoRetries: 2               # 对当前实例的重试次数
    MaxAutoRetriesNextServer: 0    # 切换实例的重试次数
    ConnectTimeout: 3000            # 请求连接的超时时间
    ReadTimeout: 3000               # 请求处理的超时时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值