OpenFeign:Spring Cloud声明式服务调用组件

OpenFeign:Spring Cloud声明式服务调用组件

问题总结

  1. OpenFeign?
  2. Feign VS OpenFeign?
  3. OpenFeign实现远程服务调用?
  4. OpenFeign超时控制?
  5. OpenFeign日志增强?

问题答案

  1. Open Feign

Spring官方推出的一种声明式服务端调用与负载均衡组件。

  • OpenFeign常用注解
注解 说明
@FeignClient 通知OpenFeign组件对@RequestMapping注解下的接口解析,并通过动态代理的方式实现类,实现负载均衡和服务调用
@EnableFeignClients 用于开启OpenFeign功能,当Spring Cloud应用启动时,OpenFeign会扫描标有@FeignClient注解的接口,生成代理并注册到Spring容器中
@RequestMapping
@GetMapping
@PostMapping

  1. Feign VS OpenFeign
  • 相同点
    • 都是Spring Cloud下的远程调用和负载均衡组件
    • 都可以实现远程调用和负载均衡
    • 都继承了Ribbon,利用Ribbon维护了可用服务清单,并通过Ribbon实现了客户端的负载均衡。
    • 都在客户端定义服务绑定接口并通过注解的方式进行配置,以实现远程服务的调用。
  • 不同点
    • 依赖项不同,Feign的依赖为spring-cloud-starter-feign,而OpenFeign的依赖为spring-cloud-starter-openfeign
    • OpenFeign支持Spring MVC注解

  1. OpenFeign实现远程服务调用

  1. OpenFeign超时控制
  • 默认1s超时,由于OpenFeign集成了Ribbon,其服务调用以及负载均衡在底层都是依靠Ribbon实现的,因此OpenFeign超时控制也是通过Ribbon来实现的。

  1. OpenFeign日志增强
  • Logger.Level的具体级别如下:
    • NONE:不记录任何信息。
    • BASIC:仅记录请求
    • HEADERS:除了记录BASIC级别的信息外,还会记录请求喝响应的头信息。
    • FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据等。
posted @ 2024-01-02 18:02  hoodoo-  阅读(19)  评论(0编辑  收藏  举报