- 负载均衡是什么?
Ribbon是客户端负载均衡的工具(在消费者),ribbon帮你基于某种规则(轮询,随机连接)去连接这些机器。 - Ribbon在生产环境大规模部署,不会短期替代
- Ribbon做些什么?
负载均衡:用户请求分配到多个服务上实现高可用
Nginx(集中式)服务端负载均衡,所有客户端请求交给Nginx,然后由nginx决定哪一个服务
Ribbon(进程内)本地负载均衡,在调用微服务接口时就确定用哪一个服务
Ribbon的使用:负载均衡+RestTemplate - Ribbon工作步骤
第一步 先选择EureKa Server 优先选择同一个区域内负载较少的server
第二部 根据用户指定的策略,从Server取到的服务注册列表里选择一个地址 - 注意eureka依赖已经引入了ribbon,故已经可以负载均衡轮询方式
- RestTemplate的使用(Ribbon的使用需要这个远程调用)
getForObject/post(返回json串) 只返回json串
getForEntity(返回ResponseEntity)返回更加详细 - Ribbon核心思想
轮询负载均衡 - Ribbon核心组件Irule的默认自带组件规则
轮询如何替换
跳出扫描包(不能被ComponentScan扫描到)
写Irule定义类(定义轮询算法)
在主类中写注解
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration=MySelfRule.class)
- 理解原理并手写代码
原理是什么?
服务名称对应的IP有两个,如何切换?
负载均衡算法:第几次请求%服务器集群总数量=实际服务器位置下标index,list.get(index)->具体服务地址。重启整个服务器,然后rest重新计数
8001,8002总机器数字两台, - 源码分析
- 手写一个负载均衡算法(原理+JUC(CAS+自旋锁的复习))