Http调用工具spring-feign 使用文档
介绍一下如何使用spring-feign进行远程服务调用,以及springboot应用中的一些常用处理,包括请求id追踪,统一的异常处理和日志打印等问题
介绍一下如何使用spring-feign进行远程服务调用,以及springboot应用中的一些常用处理,包括请求id追踪,统一的异常处理和日志打印等问题
Feign是Netflix发布的一款轻量级Rest客户端框架,提供了一种声明式的服务调用组件,通过Feign只需声明一个接口并通过注解进行简单的配置即可实现对Http接口的绑定。然后就可以像调用本地方法一样来调用远程服务,而完全感觉不到是在进行远程调用。
Feign支持多种注解,比如Feign自带的注解以及JAX-RS注解,但遗憾的是Feign本身并不支持Spring mvc注解,这无疑会给广大Spring用户带来不便。于是Spring Cloud又对Feign进行了封装,使其方便集成到Spring项目中,并添加了对Spring mvc注解的支持,以及简化与负载均衡、服务注册发现、断路器等组件的集成,所以集成之后又叫Spring Cloud Feign
根据设计文档中的描述,这里对一些常见的使用场景进行示例说明
写这个工具最开始只是为了解决各种离线数据文件的处理,其中涉及比较多的任务处理。当时刚进入公司参与第一个项目,但是意识到公司的产品业务基本上都是围绕着数据做一些信息挖掘,尤其是离线数据,所以后续应该还会有很多各种各样的任务式场景。后来参与的各种项目也确实印证了自己的想法,所以确实能在一些项目中发挥作用,提高工作中的开发效率和质量,以及运维的能力。
目标是实现一个轻量级的通用任务管理框架,主要针对的是定时任务。在功能上除了能支持常见的场景外,希望也能支持一定的实时监控管理,而在结构设计上要有足够的扩展性以方便进行定制,同时在使用方式上要简洁清晰,对原代码尽量少的侵入。由于当时是设计用来处理文件的,又是基于spring容器管理的,所以取名为spring-fom。