知识卡片
Feign简化调用却削弱端口价值
内容
用Spring Cloud Feign调用远程REST服务时,只需给客户端端口标记@FeignClient等注解,适配器实现即交给Feign框架,省去不少开发工作。但这也带来两处代价:从整洁架构看,@FeignClient给客户端端口引入了对Feign框架的依赖;且Feign接口方法的输入参数与返回值必须与上游远程服务接口保持一致,一旦上游接口变更就会波及下游客户端——这实际上削弱了南向网关引入端口的价值。发散:便利与解耦常此消彼长,Feign用一层框架依赖换取了开发效率,却让本该被端口挡住的上游变更穿透了进来。
参考来源
- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.2.2(源文件:_epub-src/OEBPS/031.xhtml)
- 结论依据:原文指出Feign为客户端端口引入框架依赖,且接口须与上游一致,上游变更会影响下游,削弱了端口价值。
- 原始内容:@FeignClient注解也为客户端端口引入了对Feign框架的依赖……一旦上游远程服务的接口定义发生了变更,就会影响到下游客户端,这实际上削弱了南向网关引入端口的价值。