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

文章目录

OpenFeign------声明式 REST 客户端

  • 注解驱动:

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

添加依赖:

xml 复制代码
<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

相关推荐
geovindu几秒前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
闲云lazycloud1 分钟前
第 1 课:Harness 与 Agent 运行时
人工智能·后端
马优晨9 分钟前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
熊哈哈O_o14 分钟前
260+异构同步链路:DDL语法自动翻译在大规模数据同步中的实现原理
后端
Baron X33 分钟前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
用户98883218717442 分钟前
别把 IOptionsSnapshot 注入单例:从生命周期看 .NET 配置读取
后端
姜鱼问生43 分钟前
别再 chmod 777 了,用 ACL 给它开一扇窗
后端·算法·架构
孙浩君1 小时前
我用 Spring Boot + xterm.js 写了个终端风格互动叙事游戏引擎:游戏即文件,上传一个 JSON 就能玩
java
仿生joe会梦见漫天的大雪吗1 小时前
CTF Misc 工具选型指南:按题型分类的工具、原理与限制
后端·安全
南丘山1 小时前
一个 VARCHAR(1) 的字段,卡住了整条 DTU 数据链路
后端