1.技术背景
在单体应用中,代码可以直接依赖,在代码中直接调用即可:但在微服务架构(分布式架构)中,服务都运行在各自的进程之中,甚至部署在不同的主机和不同的地区,就需要相关的远程调用技术了.
Spring Cloud体系里应用比较广泛的服务调用方式有两种:
(1) 使用Rest Template进行服务调用, 可以通过Ribbon注解Rest Template模板, 使其拥有负载均衡的功能。
(2) 使用Feign进行声明式服务调用, 声明之后就像调用本地方法一样, Feign默认使用Ribbon实现负载均衡。
两种方式都可以实现服务之间的调用,可根据情况选择使用,下面我们分别用实现案例来进行讲解。
服务消费(Feign)
Spring Cloud Feign是一套基于Netflix Feign实现的声明式殿务调用客户端, 使编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它即可完成对Web服务接口的绑定。它具备可插拔的注解支持, 包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器.Spring Cloud Feign还扩展了对Spring MVC注解的支持, 同时还整合了Ribbon来提供均衡负载的HTTP客户端实现。