目录
一、Feign框架
前面几篇文章使用了ribbon实现了远程调用以及负责均衡,但是问题来了,"/user/"这个路径是被写死了,但是对于我们开发者来说不可能每次调用都去问题,而且开发的过程中有可能路径会发送改变,是不确定因素
feign框架:可以把rest的请求进行隐藏,伪装成类似springMvc的controller一样,你不用在自己拼接url,拼接参数等等操作一切都交给feign去做。
1、使用feign框架
在consumer中引入spring-cloud-starter-openfeign相关依赖
在主配置类上添加@EnableFeignClient
现在我们远程请求服务,可以向之前写controller一样写
对比一下这个原始的方式
这些都不需要了
我们使用的时候直接注入调用即可
2、负载均衡
可以看到feign框架底层依赖了ribbon,而且它底层实现了负载均衡。因为从上面可以体会到,在@feignClient中并没有外部获取ip地址,说明它底层已经实现了负载均衡。
所以直接去掉项目中的这两个依赖
在 配置文件中可以设置ribbon的连接超时时间和请求超时时间
3、开启熔断
关闭之前的熔断注解
在feign框架中,hytrix默认是关闭的,需要我们手动去开启
配置熔断
设置回滚调用类(一定要是实现上面接口)
启动报错,还是需要引入hytrix依赖
4、请求压缩
5、日志设置
通过loggin.level.xx=debug来设置日志级别。然而这个对fegin客户端而言不会产生效果。因为@FeignClient注解修改的客户端在被代理时,都会创建一个新的Feign.Logger实例。我们需要额外指定这个日志的级别才可以
在需要的地方传入日志