SpringCloud(七) -- 负载均衡 Ribbon

解决了集群服务中,多个服务高效率访问的问题。
Ribbon是Netflix发布的负载均衡器,有助于控制HTTP客户端行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于负载均衡算法,自动帮助服务消费者请求。
在这里插入图片描述

1. 入门-初体验

实现负载均衡访问用户服务。
如果想要做负载均衡,我们的服务至少2个以上,所以我们先来在idea中启动两个生产者。

1.1 步骤

第一步: 启动多个provider-service服务

  1. 编辑应用启动配置
  2. 先复制, 再选择应用服务、填写服务名称、指定服务端口
  3. 复制一个,将端口改为9092
  4. 结果

第二步:开启消费者负载均衡

  1. 在RestTemplate的注入方法上加入@LoadBalanced注解
  2. 修改调用请求的Url地址,改为服务名称调用
  3. 访问页面查看效果

1.2 实现

1.2.1 使用service 启动两个user-service应用

编辑应用启动配置
在这里插入图片描述
先复制, 再选择应用服务、填写服务名称、指定服务端口
–server.port=9091
在这里插入图片描述
复制一个,将端口改为9092
在这里插入图片描述
结果
在这里插入图片描述

1.2.2 开启消费者调用负载均衡

Eureka已经集成Ribbon,所以无需引入依赖。

  1. 在RestTemplate的配置方法上添加@LoadBalanced注解即可
    在这里插入图片描述
  2. 修改ConsumerController调用方式,不再手动获取ip和端口,而是直接通过服务名称调用
    在这里插入图片描述
  3. 访问页面查看结果
    先启动 eureka服务器, 再启动 user-service服务器, 再启动 consumer-service服务器.
    第一次: 端口号 9092
    在这里插入图片描述