有关Spring Cloud Alibaba之前写过五篇文章,这篇也是在上面项目的基础上进行开发。
Spring Cloud Alibaba(2)---RestTemplate微服务项目
Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(4)---Nacos(注册中心)
Spring Cloud Alibaba(5)---Nacos(配置中心)
Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
Spring Cloud Alibaba(7)---docker-compose搭建nacos1.4.0集群
因为Feign是由Netflix开发出来,它不属于spring cloud alibaba 的组件。
一、概念
一个成熟的微服务集群,内部调用必然依赖一个好的RPC框架,比如:基于http协议的Feign,基于私有Tcp协议的dubbo。本文内容介绍Feign。
1、什么是Feign
Feign是由Netflix开发出来的另外一种实现负载均衡的开源框架,它封装了Ribbon和RestTemplate,实现了WebService的 面向接口编程,进一步的减低了项目的耦合度,
因为它封装了Riboon和RestTemplate,所以它具有这两种框架的功能,可以 实现负载均衡和Rest调用。
2、为什么需要Feign
之前已经创建好了订单微服务,商品微服务,这两个微服务是互相隔离的,那么微服务和微服务之间如何互相调用呢?
显然两个微服务都可以采用http通信,之前也通过代码来实现restTemplate进行互相访问,但是这种方式对参数传递和使用都不是很方便,我们需要配置请求head、body,
然后才能发起请求。获得响应体后,还需解析等操作,十分繁琐。采用Feign进行服务之间的调用,可以简化调用流程,真正感觉到是在同一个项目中调用另一个类的方法的欢快感。
3、Feign优点
1、Feign旨在使编程java Http客户端变得更容易。
2、服务调用的时候融合了 Ribbon