【SpringCloud-Alibaba系列教程】5.负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【SpringCloud-Alibaba系列教程】5.负载均衡相关的知识,希望对你有一定的参考价值。

参考技术A 上一章我们简单的说了一下关于Nacos的使用,这次我们首先做从Nacos获取微服务地址和端口的操作,然后再进行引出负载均衡的问题。

首先我们在订单Controller继续编写

RoundRobinRule轮询策略:轮询选择, 轮询index,选择index对应位置的Server;

RetryRule重试策略:对选定的负载均衡策略机上重试机制,在一个配置时间段内当选择Server不成功,则一直尝试使用subRule的方式选择一个可用的server;

BestAvailableRule最低并发策略:逐个考察server,如果server断路器打开,则忽略,再选择其中并发链接最低的server

AvailabilityFilteringRule可用过滤策略:过滤掉一直失败并被标记为circuit tripped的server,过滤掉那些高并发链接的server(active connections超过配置的阈值)或者使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个Server的运行状态;

ResponseTimeWeightedRule响应时间加权重策略:根据server的响应时间分配权重,响应时间越长,权重越低,被选择到的概率也就越低。响应时间越短,权重越高,被选中的概率越高,这个策略很贴切,综合了各种因素,比如:网络,磁盘,io等,都直接影响响应时间。

ZoneAvoidanceRule区域权重策略:综合判断server所在区域的性能,和server的可用性,轮询选择server并且判断一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有server

具体可以查看相关wiki: https://github.com/Netflix/ribbon/wiki
我们可以在配置文件中配置策略

这样我们就实现了负载均衡。
后期会在这个项目上不断添加,喜欢的请点个start~
项目源码参考一下分支220126_xgc_loadBalance
Gitee: https://gitee.com/coderxgc/springcloud-alibaba
GitHub: https://github.com/coderxgc/springcloud-alibaba

以上是关于【SpringCloud-Alibaba系列教程】5.负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

【SpringCloud-Alibaba系列教程】13.gateway网关结合Sa-token进行登录鉴权

SpringCloud-Alibaba系列教程14.一文教你入门RocketMQ

深入浅出Dubbo3原理及实战「SpringCloud-Alibaba系列」基于Nacos作为注册中心进行发布SpringCloud-alibaba生态的RPC接口实战

深入浅出SpringCloud原理及实战「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析

springcloud-Alibaba入门简介

SpringCloud-Alibaba的Nacos究竟有多好用?