1 feign负载均衡
1.1 简介
feign是声明式的web service客户端,它让微服务之间的调用变得更加简单了,类似controller调用service,springcloud集成了ribbon和eureka,
可在使用feign时提供负载均衡的http客户端。
只需要创建一个接口,然后添加注解即可
feign主要是社区,大家都习惯面向接口编程。这个是很多开发人员的规范,调用微服务访问两种方法
- 微服务名称【RestTemplate+ribbon】
- 接口和注解【feign】
1.2 feign能干什么
- feign使编写java http 客户端变得更容易
- 前面在使用RestTemplate+ribbon时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所有通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。若依feign在此基础上做了进一步封装,由他来帮助定义和实现依赖服务接口的定义
- 在feign的实现下,只需要创建一个接口并使用注解的方式来配置(类似于在Dao接口上标注@Mapper注解)现在是一个微服务接口上标注一个Feign注解即可
- 添加上注解即可完成对服务提供方的接口绑定,简化使用springcloud ribbon时,自动封装服务调用客户端的开发量
1.3 feign集成ribbon
利用ribbon维护了微服务列表信息,并且通过轮询实现了客户端的负载均衡,而与ribbon不同的是,通过reign只需要定义服务绑定且以声明式的方法,可读性而且简单的实现了服务调用。