一. 关于负载均衡
负载均衡⼀般分为
服务器端负载均衡
和
客户端负载均衡
所谓
服务器端负载均衡
,⽐如
Nginx
、
F5
这些,请求到达服务器之后由这些负载均衡
器根据⼀定的算法将请求路由到⽬标服务器处理。
所谓
客户端负载均衡
,⽐如我们要说的
Ribbon
,服务消费者客户端会有⼀个服务器
地址列表,调⽤⽅在请求前通过⼀定的负载均衡算法选择⼀个服务器进⾏访问,负
载均衡算法的执⾏是在请求客户端进⾏。
Ribbon
是
Netflflix
发布的负载均衡器。
Eureka
⼀般配合
Ribbon
进⾏使⽤,
Ribbon
利
⽤从
Eureka
中读取到服务信息,在调⽤服务提供者提供的服务时,会根据⼀定的算
法进⾏负载。

二. Ribbon⾼级应⽤
不需要引⼊额外的
Jar
坐标,因为在服务消费者中我们引⼊过
eureka-client
,它会引
⼊
Ribbon
相关
Jar

代码中使⽤如下,在
RestTemplate
上添加对应注解即可
@Bean// Ribbon 负载均衡@LoadBalancedpublic RestTemplate getRestTemplate () {return new RestTemplate ();}
修改服务提供者
api
返回值,返回当前实例的端⼝号,便于观察负载情况

测试
打印如下
三. Ribbon负载均衡策略
Ribbon
内置了多种负载均衡策略,内部负责复杂均衡的顶级接⼝为
com.netflflix.loadbalancer.IRule
,类树如下

在消费端yml文件中修改负载均衡策略