1、简介
freign是声明式的web service客户端,它让微服务之间的调用变得更加简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可再使用Freign时提供负载均衡的http客户端。
feign,主要是社区,大家都习惯面向接口编程。这个是很多开发人员的规范。调用微服务访问两种方法。
(1)微服务名字【ribbon]
(2)接口和注解【feign]
Feign能干什么?
(1)Feign旨在使用编写Java Http客户端变得更容易
(2)前面在使用Ribbon+RestTemplate时,利用RestTemplate对Http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign实现下,我们只需要创建一个接口并使用注解的方式配置它(类似于以前的Dao接口上标注的Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可。)即可完成对服务提供方的接口绑定,简化了使用Spring Cloud Ribbon时,自动封装服务调用客户端的开发量。
Feign集成了Ribbon
利用Ribbon维护了MicroServiceCloud-Dept的服务列表信息,并且通过轮询实现了客户端的负载均衡,而与Ribbon不同的是,通过Feign只需要定义服务绑定接口并以声明式的方法,优雅而且简单的实现了服务调用。