一 loadbalance
1.1 负载均衡的介绍
使用注解@loadbalance,是一个客户端的负载均衡器;通过之前已经从注册中心拉取缓存到本地的服务列表中,获取服务进行轮询负载请求服务列表中的数据。
轮询原理
1.2 loadbalance工作流程
loadBalance工作流程:
1.先从注册中心consulServer拉取服务列表;默认轮询调用谁都可以正常执行,类似生活中去医院挂号,某个科室今日出诊的全部医生,客户端你自己选一个。
2.按照指定的负载均衡策略从server列表中,由客户端自己选择一个地址。
所以lb是一个客户端的负载均衡器。
1.3 客户端负载均衡和服务端负载均衡
lb是客户端,通过读取本地缓存服务列表进行负载均衡。
nginx是服务端负载均衡器,接收所有客户端请求,然后ng进行转发。
二 负载均衡案例
2.1 案例说明
说明: 8081为客户端;9091,9092为服务端,实现的结果为:8081访问服务端端,能够实现轮询范围9091,9092的服务。如下图所示
2.2 配置客户端8081
1.引入pom依赖
<!--loadbalancer-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
2.配置轮询访问
2.3 配置服务端9091
1.服务端的配置:配置成统一服务名称,注册到consul中心
2.读取配置文件内容
2.4 配置服务端9092
1.9002是从9001工程复制进行相应修改
2.注册到consul的配置
2.4 服务启动测试
1.服务启动
2.consul端
3.请求访问
多次刷新请求地址:http://localhost:8081/consumer/pay/get/456
1.9091的访问
2.9092的访问
实现负载均衡效果
三 轮询策略
3.1轮询策略
3.2 将轮询改为随机
1. 自定义负载均衡案例
2.进行访问后,可以看到9091多次之后,才会偶尔切换9092