Ribbon 负载均衡 服务调用
- 概述
- Ribbon负载均衡演示
- Ribbon核心组件IRule
- Ribbon负载均衡算法
概述
一句话:Riddon就是 负载均衡+RestTemplate调用
Ribbon负载均衡演示
LB(负载均衡)
集中式LB
进程内LB
架构说明
总结:Ribbon其实就是一个软负载均衡的客户端软件,可以和其他所需请求的客户端结合使用,和eureka结合只是其中一个实例。
POM
RestTemplate的作用
-
getForObject方法/getForEntity方法
-
postForObject/postForEntity
Ribbon核心组件IRule
IRule
IRule:根据特定算法中从服务列表中选取一个要访问的服务
自带的 负载均衡规则 方法:
负载均衡规则的替换
-
修改cloud-consumer-order80
-
注意配置细节
@ComponentScan位于SpringBoot主启动类上,所以要跳出主启动类的所在包,另建新包
-
新建package
-
包下新建 MySelfRule 规则类
@Configuration public class MySelfRule { @Bean public IRule myRule(){ //定义为随机的负载均衡规则 return new RandomRule(); } }
-
著启动类添加@RibbonClient注解
@SpringBootApplication @EnableEurekaClient @RibbonClient(name = "CLOUD-PAYMENT-SERVER",configuration = MySelfRule.class) public class CloudConsumerOrder80Application { public static void main(String[] args) { SpringApplication.run(CloudConsumerOrder80Application.class, args); } }
-
测试
先后启动 Eureka Server7001、7002
payment8001、8002,ConsumerOrder80
访问:http://localhost/consumer/pay/get/1
连续访问,查看端口号的变化,不再是单纯的 轮询方式,证明负载均衡方式随机改变