基础
- 介绍:封装ribbon和hystrix,提供了快速定义web服务客户端的方式
- 使用过程
- 在服务端,将对外提供的借口,以及数据传输类整理到一个新的项目作为api中,而后,使用maven依赖,在服务端以及客户端引用该项目
- 在抽象出来的api中,service方法可以添加对应的requestmapping,在客户端中框架会通过反射获取到其对应的路径;但其中方法级别的注解,无法被获取,需要额外指定
- 在客户端,创建新的借口继承该api中的service接口,添加@FeignClient()注解,注解中,指定服务名,作为ribbon针对具体客户端进行配置时的依据
- 此时,可以直接在客户端中注入相关接口service对象,即可使用
- 配置ribbon参数时,可以通过服务名来具体指定针对某个具体服务的超时时间
- 存在自动重试机制
- hystrix的是否启用可以单独配置
- 具体针对方法配置时,根据方法名来作为commadfKey来指定配置,方法名相同时,会同时生效
- 服务降级配置
- 无法向hystrix中,使用命令来指定方法;因为其仅通过继承接口来封装模板,无法添加具体的命令,使用另一中配置方式
- 在客户端中,继承当前继承继承api中接口,创建一个类来实现接口中的方法,且其中方法的实现作为服务降级逻辑,该类要作为组件配置到spring中,component
- 在FeignClent中,通过fallback数据指定该类.class;
- 可以配置请求压缩衣
- 可以配置日志,在配置文件中指定日志级别,同时,额外在类中通过配置类以及实现logger。level bean的方式配置feign客户端logger的级别,默认为none,不记录任何信息