SpringCloud入门实战-Ribbon使用 原创
- 目录
- 概述
- 需求:
- 设计思路
- 实现思路分析
- 1.Ribbon原理
- 2.Ribbon负载均衡策略
- 参考资料和推荐阅读
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
需求:
设计思路
实现思路分析
1.Ribbon原理
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.
服务列表:通过注册中心获取可用的服务列表
服务过滤:对原始服务列表使用一定策略进行过滤,并返回有效的服务器列表给客户端负载均衡器使用
服务心跳检测:用来检测一个微服务实例是否可用;如果检测到某服务实例不可用,则会从列表中及时移除
负载均衡策略:在多个服务实例中选择一个有效的服务实例,并进行相应的服务请求处理
2.Ribbon负载均衡策略
RandomRule 随机策略 随机选择server
RoundRobinRule 轮询策略 按照顺序选择server(ribbon默认策略)
按照顺序选择server(ribbon默认策略)重试策略 在一个配置时间段内,当选择server不成功,则一直尝试选择一个可用的server
ZoneAvoidanceRule 区域权重策略 综合判断server所在区域的性能,和server的可用性,轮询选择server并且判断一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有server
ribbon.MaxAutoRetries=0 #对当前实例的重试次数,默认0
ribbon.MaxAutoRetriesNextServer=1 #切换实例的重试次数,默认1
ribbon.ReadTimeout=5000 #请求处理的超时时间,默认5秒
ribbon.ConnectTimeout=2000 #请求连接的超时时间,默认2秒
如果使用feign调用服务,里面默认包含了robbion,不需要特殊处理。
Robbion负载均衡器是spring Cloud默认的负载均衡器,但现在已处于维护的状态,不建议使用,Spring Cloud推荐使用BlockingLoadBalancerClient来作为负载均衡器;可以把spring.cloud.loadbalancer.ribbon.enabled设为false来停用Robbion。
参考资料和推荐阅读
[1].https://blog.51cto.com/wuyongyin/4858695?b=totalstatistic
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~