首先官方: https://github.com/Netflix/ribbon
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) ribbon自带以下几种算法
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 实现如下场景的负载均衡
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 简单使用(默认用的时轮询算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 接下来用restTemplate调用其他工程时,通过注册中心来调用。所以调用时地址写服务提供者注册到注册中心的工程名就行
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) Ribbon自定义负载均衡算法
想要自定义负载均衡算法,就需要在启动来引入一个注解:
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 下图这样自定义类就生效了,当然了,这里我自定类中还是写的它自带的随机算法。接下来看就是自定义了
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 自定义负载均衡算法
需求实现:我们实现一个自定义负载均衡算法规则:依旧轮询策略,但是加上新需求,每个服务器要求被调用5次,也即是以前是每台机器一次,现在每台机器5次
首先参考它官方自带的随机算法怎么实现的:https://github.com/Netflix/ribbon/blob/master/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/RandomRule.java
看看它是怎么写的
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法) 然后将刚刚那个需求实现
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)
ribbon负载均衡Ribbon的核心组件(使用其他负载均衡算法)