一.简介
1.什么是负载均衡
负载均衡是指将工作任务进行平衡、分摊到多个操作单元上进行运行,从而协同完成工作任务。
2.负载均衡分类
2.1 服务端负载均衡
服务端负载均衡即请求到达服务端之后由负载均衡器根据一定的负载均衡算法将请求路由到目标服务器,常见的有Nginx、F5等
2.2 客户端负载均衡
客户端负载均衡即服务端有一个服务端的地址列表,发出请求之前通过一定的负载均衡算法选择一个服务器进行请求访问。
2.3 常用的负载均衡算法
轮询、加权、一致性hash等
3. Ribbon简介
Ribbon是Netflix发布的负载均衡器
二. 实战
主要流程:设置2个服务提供者供负载均衡使用(1、2、3、4) ----> 在消费端添加Ribbon相注解(5) ----->修改消费端调用接口(6) ---->启动项目并访问(7、8)
在上次的项目中,复制一份ShopProvider8100为
ShopProvider8101
以便进行负载均衡测试
1.复制ShopProvider8101
2.修改父类pom、子类pom
3.修改8101 的配置文件
4.修改8100、8101 的Controller
5.在消费端添加关于Ribbon注解
6.修改消费者调用接口
7.启动项目
启动顺序 :注册中心 -> 服务提供者 -> 服务消费者
8.调用接口访问出结果
时而 8100
时而8101
Ribbon 的使用就是这么简单,不需要引依赖,一个在客户端的注解 @LoadBalanced 即可实现。
不需要引依赖的原因是Eureka 包下有Ribbon
---------------------------------------------------------------------分割线---------------------------------------------------------------------
ps.2个bug
第一个:上篇写的项目 ,重启之后就回报 bean 已存在的问题
第二个:当我把 "/shop" 也去掉时
调用接口会出现如下结果
最重要的问题是,我的项目中
早就没有 **hellow Eureka**