在使用RestTemplate和Ribbon调用服务的时候,仍然依赖URL,而且如果调用的服务需要多个参数的时候将非常麻烦,这就需要一种更简单的服务调用方式Feign.
1.什么是Feign
Feign是Netflix开发的声明式的Http客户端。
Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
Spring Cloud Feign具备可插拔的注解支持,支持Feign注解、JAX-RS注解和Spring MVC的注解。
2.Feign的简单使用
①引入依赖
②配置调用接口
③在启动类激活Feign,在启动类增加@EnableFeignClients注解
④通过自定义的接口调用服务
3.Feign的负载均衡
因为Feign不需要使用RestTemplate进行服务调用,不使用@LoadBalanced注解就可以实现负载均衡。
可以参考Ribbon的配置方式配置负载均衡策略
4.Feign的数据压缩配置
5.Feign的日志配置
6.Feign源码简析
7.总结
在微服务中使用Feign进行服务之间的调用,支持负载均衡,数据压缩,日志配置。