1,Ribbon客户端负载均衡
- LB,即负载均衡(Load Balance),负载均衡是微服务架构中经常使用的一种技术。 负载均衡是我们处理高并 发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务 上,从而实现系统的高可用性集群。
- 负载均衡可通过 硬件设备 及 软件 进行实现,软件比如:Nginx等,硬件比如:F5等
- 负载均衡相应的在中间件,例如:Dubbo 和 SpringCloud 中均给我们提供了负载均衡组件。
如下图是负载均衡的架构图:
用户请求先到达负载均衡器(相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务,负载均衡器维护一份服务列表,根据负载均衡算法将请求转发到相应的微服务上,负载均衡算法有: 轮训,随机,加权随机,地址哈希等方法,所以负载均衡可以为微服务集群分担请求,降低系统的压力。
2,什么是客户端负载均衡(Ribbon)
上图是微服务负载均衡,客户端负载均衡与服务端负载均衡的区别在于:客户端负载均衡要维护一份服务列表。两者负载均衡最大的区别在于服务清单所存储的位置。在客户端负载均衡中,每个客户端微服务都有一份自己要访问的服务清单,这些清单统统都是从Eureka服务注册中心获取的。而在服务端负载均衡中,只要负载均衡器维