Spring Cloud_OpenFeign
Feign 是什么?
- Feign 集成了 Ribbon、RestTemplate 实现了负载均衡的执行 Http 调用
- 对原有的方式(Ribbon+RestTemplate)进行了封装,开发者不必手动使用 RestTemplate 调服务,而是定义一个接口
- 在这个接口中标注一个注解即可完成服务调用
- 这样更加符合面向接口编程的宗旨,简化了开发
OpenFeign 是什么?
- OpenFeign 是 SpringCloud 在 Feign 的基础上支持了 SpringMVC 的注解,如
@RequestMapping
等
- OpenFeign 的
@FeignClient
可以解析 SpringMVC 的 @RequestMapping
注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务
什么是 Hystrix?它如何实现容错?
- Hystrix 是 Netflix 开源的一个用于实现容错的库
- 它主要用于处理分布式系统中的延迟和故障
- Hystrix 可以帮助开发人员实现服务的容错和降级,从而提高系统的可用性和稳定性
- Hystrix 的容错机制主要包括以下几个方面:
openFeign 如何传参?
- 传递 JSON 数据:接口开发中常见的传参规则,在 Spring Boot 中通过@RequestBody 注解
- POJO 表单传参:使用@SpringQueryMap 注解
- URL 中写入参数:使用@PathVariable 注解
超时如何处理?
- OpenFeign 有默认的超时时间
- OpenFeign 集成了 Ribbon,Ribbon 的默认超时连接时间、读超时时间都是是 1 秒
- 如果 openFeign 没有设置对应得超时时间,那么将会采用 Ribbon 的默认超时时间
- 通常在配置文件中设置 OpenFeign 的超时时间
如何开启日志增强?
如何替换默认的 httpclient?
- Feign 在默认情况下使用的是 JDK 原生的URLConnection发送 HTTP 请求,没有连接池,但是对每个地址会保持一个长连接
- 在生产环境中,通常不使用默认的 http client,使用ApacheHttpClient
- 通过添加依赖和配置文件中开启,实现替换
如何通讯优化?
- 使用 GZIP 压缩算法
- OpenFeign 支持请求和响应中开启 GZip
如何熔断升级
- 使用 OpenFeign + Sentinel 进行整合,实现服务降级
![]()
![]()
扫描二维码,输入您要赞赏的金额
赞赏不用多,心意到了即可