news 2026/1/11 18:18:00

【SpringCloud | 第2篇】OpenFeign远程调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SpringCloud | 第2篇】OpenFeign远程调用

文章目录

  • OpenFeign——声明式 REST 客户端
  • 远程调用——第三方API
  • OpenFeign——日志
  • OpenFeign——超时控制
  • OpenFeign——重试机制
  • OpenFeign——拦截器
  • OpenFegin——Fallback(兜底返回)

OpenFeign——声明式 REST 客户端

  • 注解驱动:

    • 指定远程地址:@FeignClient
    • 指定请求方式:@GetMapping、@PostMapping、@DeleteMapping
    • 指定携带数据:@RequestHeader、@RequestParam、@RequestBody
    • 指定结果返回:响应模型

添加依赖:

<dependency><groupld>org.springframework.cloud</groupld><artifactld>spring-cloud-starter-openfeign</artifactld></dependency>

远程调用:

远程调用——第三方API

调用阿里云的API获取某城市的天气。

参照要调用的第三方API接口文档,获取天气的客户端:

注意:@FeignClient 后有指定 url就是向该 url 提交请求,没有则是向指定的注册服务提交请求。

注意:客户端负载均衡和服务端负载均衡的区别?

OpenFeign——日志

官方文档:https://docs.spring.io/spring-cloud-openfeign/reference/4.3/spring-cloud-openfeign.html#feign-logging

在 yaml 配置文件中配置日志级别,配置类中配置日志全量组件

再次请求测试方法,控制台显示远程调用方法的日志信息:

OpenFeign——超时控制

调用的远程服务宕机,读取不到数据

两个主要参数 连接超时(默认10s) 和 读取超时(默认60s) :

设置超时控制的时间:
官方文档:https://docs.spring.io/spring-cloud-openfeign/reference/4.3/spring-cloud-openfeign.html#spring-cloud-feign-overriding-defaults

OpenFeign——重试机制

远程调用超时失败后,还可以进行多次尝试,如果某次成功返回ok,如果多次调用仍然失败则结束调用,返回错误。

官方文档:https://docs.spring.io/spring-cloud-openfeign/reference/4.3/spring-cloud-openfeign.html#spring-cloud-feign-overriding-defaults

OpenFeign——拦截器

  • 实现RequestInterceptor接口
  • 重写 apply 方法,可对拦截的请求添加其它参数

OpenFegin——Fallback(兜底返回)

兜底返回的功能需要整合Sentinel才能实现。

官方文档:https://docs.spring.io/spring-cloud-openfeign/reference/4.3/spring-cloud-openfeign.html#spring-cloud-feign-circuitbreaker-fallback

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!