对Feign的使用增强
主要有以下几个方面
- 支持默认fallback
- 支持不同method设置不同的retry
- 增加的功能对Feign已有的功能无任何影响
- 增加的功能对与Hystrix融合的功能无任何影响
备注
支持默认fallback
fallback当然要先开启Hystrix了,fallback不是Feign的功能。
默认fallback的意思是,不需在@FeignClient中配置fallback或fallbackFactory。默认的话可大大减少代码量。fallback的代码大部分都没有价值。
支持不同method设置不同的retryer
retryer在Feign中只支持一个Service一个retryer,那一个Service中有写接口,有读接口,那retryer的策略还是很可能不一样的,那这种场景就需要不同method上有不同的retryer了
对功能无影响
做的改动,必然对原有的所有功能无任何影响,所以开发后会有大量的Test保证这一点。当然了也需多多阅读源码,避免留坑。
增强的源码说明
以上功能点的增强需更改两个项目的源码。
- Feign提供了所有请求的基础功能
- 对应的Starter则开启Feign的自动装配
Feign
新增的功能点:
- retryer可支持retryerFactory,以实现不同method创建不同retryer
- retryer有其Default实现,retryerFactory仅为interface,仅提供该能力,并不写死
- retryer与retryerFactory均可使用
- 仅增强retryer的生成,对Figin的原生能力无任何影响
Openfeign Starter
新增的功能点:
- 适配Feign的retryerFactory
- 实现retryerFactory的自动装配
- 实现Hystrix的fallback的默认实现
- 实现默认fallback配置的自动装配