Spring Cloud微服务 | Note(6)
@ 2018年8月8日 16:13:08
微服务的消费
实现服务与服务之间的调用;
微服务的消费模式
HTTP常用于消费者(无关平台);
服务直连模式:直接访问URI ;
优点:简洁明了,平台语言无关性;
缺点:无法保证服务的可用性,生产环境中少用;
客户端发现模式:
服务实例启动后,将自己的位置信息提交到服务注册表中;
客户端从服务注册表进行查询,获取可用的服务实例;
客户端自行使用负载均衡算法从多个服务实例中选择一个;
服务端发现模式:
区别于客户端的负载均衡器,是独立的;
常见微服务的消费者
Apache HttpClient:用于高效、丰富的http协议的客户端;提供最新的建议和版本;
1 | // 依赖 |
Ribbon:基于客户端实现负载均衡的工具,可支持HTTP和TCP;每个负载均衡器都是组合支持;常与Eureka组合使用;提供服务消费的客户端;多种负载均衡的算法;
1 | // 依赖 |
Feign:声明式WEB服务端;可拔插注释的支持;集成负载均衡;Feign 采用的是基于接口的注解;Feign 整合了ribbon,具有负载均衡的能力;整合了Hystrix,具有熔断的能力
1 | // build.gradle |
使用Feign实现服务的消费者
解决三个TODO问题
1.数据采集微服务在数据同步任务中,依赖与城市数据API微服务
2.功能服务查询天气信息,依赖于数据API微服务
3.功能服务提供的城市列表,依赖于城市数据API微服务
实现服务的负载均衡及高可用
对每个微服务启动多个实例,作为服务负载均衡的测试
到此,完成从单体架构到微服务架构的Feign负载均衡的,Eureka高可用的搭建
附录
@ 2018年8月9日 15:09:55