【Way to Spring Cloud 4】Spring Cloud Ribbon

Spring Cloud Ribbon

什么是负载均衡

  • 负载均衡是微服务架构中经常使用的一种技术。 负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务上,从而实现系统的高可用性集群
  • 负载均衡可通过 硬件设备 及 软件 进行实现,软件比如:Nginx等,硬件比如:F5等
  • 负载均衡相应的在中间件,例如:Dubbo 和 SpringCloud 中均给我们提供了负载均衡组件
    【Way to Spring Cloud 4】Spring Cloud Ribbon
    用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡器维护一份服务端列表,根据负载均衡算法 将请求转发到相应的微服务上。
    负载均衡 算法有:轮循、随机、加权轮循、加权随机、地址哈希等方法,所以负载均衡可以为微服务集群分担请求,降低系统的压力。

什么是客户端负载均衡(Ribbon)

上图是服务端负载均衡。客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。在客户端负载均衡中,每个客户端服务都有一份自己要访问的服务端清单,这些清单统统都是从Eureka服务注册中心获取的。而在服务端负载均衡中,只要负载均衡器维护一份服务端列表 。

Spring Cloud Ribbon 是基于 Netflix 公司发布的开源项目 Ribbon 进行封装的一套客户端负载均衡器。
Ribbon 从 Eureka Server 获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。

如下图是Ribbon负载均衡的流程图:
【Way to Spring Cloud 4】Spring Cloud Ribbon

Ribbon 服务调用配置实战

修改microservice-cloud-04-consumer-product-80 模块
【Way to Spring Cloud 4】Spring Cloud Ribbon
右键可以查看依赖关系
【Way to Spring Cloud 4】Spring Cloud Ribbon
修改yml文件
【Way to Spring Cloud 4】Spring Cloud Ribbon
修改ConfigBean
【Way to Spring Cloud 4】Spring Cloud Ribbon
修改Controller为服务名
【Way to Spring Cloud 4】Spring Cloud Ribbon
修改主启动类
【Way to Spring Cloud 4】Spring Cloud Ribbon
测试客户端可以正常访问

Ribbon 负载均衡实战

【Way to Spring Cloud 4】Spring Cloud Ribbon
新建数据库springcloud_db02
【Way to Spring Cloud 4】Spring Cloud Ribbon
新建 microservice-cloud-06-provider-product-8002
(同microservice-cloud-03-provider-product-8001),配置yml和启动类

【Way to Spring Cloud 4】Spring Cloud Ribbon
【Way to Spring Cloud 4】Spring Cloud Ribbon
依次启动6001、6002、8001、8002、80,访问80,会轮询访问db01和db02,测试成功