Spring Cloud教程 | 第六篇:负载均衡策略配置及总结 | Feign | Ribbon - Go语言中文社区

Spring Cloud教程 | 第六篇:负载均衡策略配置及总结 | Feign | Ribbon


一、前言

第五篇中已介绍,feign其实不是做负载均衡的,负载均衡是ribbon的功能,feign只是集成了ribbon而已,换句话说负载均衡的功能是feign内置的ribbon在实现的。因此配置负载均衡策略即为对ribbon进行配置。

目前公司的生产系统负载均衡、高可用等均使用集群管理平台Kubernetes(K8S)实现。本部门人员此部分了解即可,不指导生产使用

 

Spring Cloud版本 Spring Boot版本 JAVA IDE
Greenwich.SR1 2.1.6.RELEASE 1.8 IDEA

为模拟实际开发,本篇教程除alh-tms外,所有的参数均从远程配置中心读取,若是不用远程配置中心,请在本地应用直接写各项参数即可。

涉及项目:

alh-config-server(6001): 保持启动状态

alh-eureka-server(6000):保持启动状态

alh-tms(8001):保持上一篇中两个实例启动状态

alh-order(8002)

完整教程全部章节目录:https://blog.csdn.net/tuoyun6647/article/details/93501029

 

二、Feign中Ribbon配置

Ribbon负载均衡策略有以下几种:

策略类 名称 说明
RandomRule 随机策略 随机选择 Server
RoundRobinRule 轮训策略 按顺序循环选择 Server
RetryRule 重试策略 在一个配置时问段内当选择 Server 不成功,则一直尝试选择一个可用的 Server
BestAvailableRule 最低并发策略 逐个考察 Server,如果 Server 断路器打开,则忽略,再选择其中并发连接最低的 Server
AvailabilityFilteringRule 可用过滤策略 过滤掉一直连接失败并被标记为 circuit tripped 的 Server,过滤掉那些高并发连接的 Server(active connections 超过配置的网值)
ResponseTimeWeightedRule 响应时间加权策略 根据 Server 的响应时间分配权重。响应时间越长,权重越低,被选择到的概率就越低;响应时间越短,权重越高,被选择到的概率就越高。这个策略很贴切,综合了各种因素,如:网络、磁盘、IO等,这些因素直接影响着响应时间
ZoneAvoidanceRule 区域权衡策略 综合判断 Server 所在区域的性能和 Server 的可用性轮询选择 Server,并且判定一个 AWS Zone 的运行性能是否可用,剔除不可用的 Zone 中的所有 Server

 

 

调用者(即服务消费者)alh-order配置文件application.properties如下

eureka.client.service-url.defaultZone=${default-zone}

server.port=${server.port}
spring.application.name=alh-order



#其中“alh-tms”指明对哪个微服务的调用进行配置,当前配置使用随机策略,修改策略修改最后的类名即可
alh-tms.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

# 设置连接超时时间,单位ms
ribbon.ConnectTimeout=5000
# 设置读取超时时间,单位ms
ribbon.ReadTimeout=5000
# 对所有操作请求都进行重试
ribbon.OkToRetryOnAllOperations=true
# 切换实例的重试次数
ribbon.MaxAutoRetriesNextServer=2
# 对当前实例的重试次数
ribbon.MaxAutoRetries=1

启动后调用上一篇中的http://localhost:8002/tms/csinfo,发现调用alh-tms已变成随机调用

三、总结

个人在实现时,发现负载均衡策略配置需指定调用的服务,如果一个服务中需要调用很多其他服务,则每个服务都需要进行配置,配置较繁琐,且不方便统一管理(如有不对的地方请指正)。就生产而言,部署建议使用集群管理平台进行部署,高可用,负载均衡等均在集群管理平台统一配置

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/tuoyun6647/article/details/93667643
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢