原理

Spring cloud ribbon原理

1.通过使用被@LoadBalanced注解修饰的restTemplate来实现面向服务的调用
Get请求:getForEntity()
Post请求:postForEntity()
Put请求:put()
Delete请求:delete()

2.restTemplate本是spring对象,ribbon通过对restTemplate拦截实现负载均衡

3.负载均衡器
1⃣️AbstractLoadBalancer: 关于服务实例分组枚举类,存储各个服务实例的属性和统计信息
2⃣️BaseLoadBalancer: ribbon负载均衡器的基本实现类,维护并存储了两个服务实例server对象列表,一个存储所有服务实例,一个存储正常服务实例
3⃣️DynamicServerListLoadBalancer:继承BaseLoadBalancer,实现了在运行期动态更新能力,还实现了过滤功能
4⃣️ZoneAwareLoadBalancer是5⃣️DynamicServerListLoadBalancer的扩展,根据按区域Zone分组,根据统计数据来实现可用区的挑选

4.负载均衡策略
1⃣️AbstractLoadBalance:负载均衡策略的抽象类根据维护的信息,作为分类依据。
2⃣️RandomRule:随机策略
3⃣️RoundRobinRule:线性轮询策略
4⃣️RetryRule:具备重试机制的策略
5⃣️WeightedRsponsedTimeRule:权重策略
6⃣️BastAvailableRule:选择最空闲的实例
7⃣️PredicateBasedRule:根据条件过滤,选择实例
8⃣️AvailabilityFilteringRule:该策略通过线性抽样的方式直接尝试寻找可用且较空闲的实例来使用,优化了父类每次都要遍历所有实力的开销。
9⃣️ZoneAvoidanceRule:选择Zone区域策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值