Feign 的高级应用 【面试】
https://blog.csdn.net/s297485987/https://www.cnblogs.com/crazymakercircle/p/11965726.html
1.使用feign进行服务间的调用2.feign开启Gzip压缩3.feign开启日志4.feign替换JDK默认的URLConnection为okhttp5.feign超时设置6.feign使用hystrix进行熔断、降级处理fegin底层实现原理在微服务启动的时候,Fegin会对包扫描,对@FeignClient注解的接口,按照注解的规则,创建远程接口的本地JDK代理实例。fegin 通过处理注解,将我们的请求模板化,在实际调用的时候,传入参数把参数应用到请求上,进而转化成真正的request请求,通过feign,以及java的动态代理机制,使得我们开发变得便利,直接通过普通的restful接口进行调用,使我们不用通过httpclient,去封装http请求。# Feign 默认 Client 替换
fegin默认情况下,使用的jdk 原生的 UrlConnections 发送 http请求,没有连接池,但是会对每一个地址保持一个长连接即利用 HTTP 的 persistence connection。 我们可以用 Apache 的 HttpClient 替换 Feign 原始的 HTTP Client,通过设置连接池、超时时间等对服务之间的调用调优。 Spring Cloud 从 Brixton.SR5 版本开始支持这种替换,接下来看看如何用 HTTP Client 和 OKHttp 去替换 Feign 默认的 Client。具体实现为什么采用 okhttp根据一些博客测试单例模式下,HttpClient的响应速度要更快一些,单位为毫秒,性能差异相差不大非单例模式下,OkHttp的性能更好,HttpClient创建连接比较耗时,因为多数情况下这些资源都会写成单例模式,因此图一的测试结果更具有参考价值