文章目录
- 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