前言
本小节我们将开始学习一下SpringCloud封装好了的用于实现微服务节点间通信的工具–Feign。
其实关于微服务架构下各个模块(节点)间的通信方式其实有很多种,个人比较推荐使用的是SpringCloud封装好了的RESTful API调用工具,比如说RestTemplate(在之前的案例中有实用参考:SpringCloud微服务 之Ribbon(一))和Feign。
其中个人比较喜欢的是使用Feign,因为Feign是SpringCloud对RestTemplate的高度封装,同时还集成更多的功能比如Hystrix等优秀工具及其拓展功能,Feign是一个非常不错的用于实现和保证微服务模块间通信的工具。下面我们先来简单了解一下Feign。
-
Feign是一个声明式的Web服务客户端,是Netflix下的一个用于实现分布式客服端间通信的工具,SpringCloud
为服务架构下,SpringCloud对Feign做了进一步封装,是的Feign的功能能为强大。 -
Feign 具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。
-
Spring Cloud在对Feign的封装过程中增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters,是的Feign能与Spring生态基本无缝集成。
-
Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户