一、Ribbon简介
在之前我们已经学习过服务器的负载均衡,通过nginx实现的。既然有服务器的负载均衡,那也有客户端的负载均衡,就是Ribbon。
执行流程:
用户向nginx发起请求,nginx根据权重访问所代理中的一个服务器,也就是applicationClient,applicationClient通过ribbon进行负载均衡算法计算出访问的application service的uri,根据uri访问applicationservice
二.为什么叫做ribbon 叫做客户端负载均衡
由于Ribbon是在ApplicationClient方使用,所以称为客户端负载均衡
三.Ribbon原理
在项目开发中,所有的项目都会注册到Eureka中,允许不同项目的spring.application.name相同的,当相同时会认为这些项目是一个集群. ApplicationClient会从Eureka中根据spring.application.name加载ApplicationService的列表,根据设定的负载均衡算法,从列表中取出一个URL,到此Ribbon的事情就结束了,剩下的事情由程序员自己进行技术选型,选择一个HTTP协议工具,通过这个URL调用service 注意:以下事情和Ribbon没有关系的 Application Service注册到Eureka过程。这是Eureka的功能。 Application Client从Eureka取出注册列表。这是Eureka的功能。 Application Client 通过URL访问Application Service。具体实现可以自己进行选择使用哪个HTTP工具。
代码语言:javascript复制只有Application Client从Eureka中取出列表后进行负载均衡算法的过程和Ribbon有关系。