ribbon的负载均衡策略_f5负载均衡配置

ribbon的负载均衡策略_f5负载均衡配置在这里吐槽一句:网上很多文章真是神坑,你不看还好,看了只会问题越来越多,就连之前的问题都没有解决!!!不多说了,Ribbon作为后端负载均衡器,比Nginx更注重的是请求分发而不是承担并发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:策略名策略声明策略描述实现说明

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在这里吐槽一句:网上很多文章真是神坑,你不看还好,看了只会问题越来越多,就连之前的问题都没有解决!!!

不多说了,Ribbon作为后端负载均衡器,比Nginx更注重的是承担并发而不是请求分发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:

策略名 策略声明 策略描述 实现说明
BestAvailableRule public class BestAvailableRule extends ClientConfigEnabledRoundRobinRule 选择一个最小的并发请求的server 逐个考察Server,如果Server被tripped了,则忽略,在选择其中ActiveRequestsCount最小的server
AvailabilityFilteringRule public class AvailabilityFilteringRule extends PredicateBasedRule 过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值) 使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个server的运行状态
WeightedResponseTimeRule public class WeightedResponseTimeRule extends RoundRobinRule 根据响应时间分配一个weight,响应时间越长,weight越小,被选中的可能性越低。 一个后台线程定期的从status里面读取评价响应时间,为每个server计算一个weight。Weight的计算也比较简单responsetime 减去每个server自己平均的responsetime是server的权重。当刚开始运行,没有形成status时,使用roubine策略选择server。
RetryRule public class RetryRule extends AbstractLoadBalancerRule 对选定的负载均衡策略机上重试机制。 在一个配置时间段内当选择server不成功,则一直尝试使用subRule的方式选择一个可用的server
RoundRobinRule public class RoundRobinRule extends AbstractLoadBalancerRule roundRobin方式轮询选择server 轮询index,选择index对应位置的server
RandomRule public class RandomRule extends AbstractLoadBalancerRule 随机选择一个server 在index上随机,选择index对应位置的server
ZoneAvoidanceRule public class ZoneAvoidanceRule extends PredicateBasedRule 复合判断server所在区域的性能和server的可用性选择server 使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server,前一个判断判定一个zone的运行性能是否可用,剔除不可用的zone(的所有server),AvailabilityPredicate用于过滤掉连接数过多的Server。

这里以随机访问策略来举个栗子:

1、ribbon配置文件添加:

service-B.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

其中service-B是我注册到Eureka的serviceID,一共起了3个示例。

2、main类注册:

    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Bean
    public IRule ribbonRule() {
        return new RandomRule();//这里配置策略,和配置文件对应
    }

一定记得加第二个注册,很多文章没有。里面配具体的策略。

3、Controller:

@RestController
public class ConsumerController { 
   

    @Autowired
    private RestTemplate restTemplate;

    @Autowired  
    private LoadBalancerClient loadBalancerClient;  

    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String add(@RequestParam Integer a,@RequestParam Integer b) {
        this.loadBalancerClient.choose("service-B");//随机访问策略
        return restTemplate.getForEntity("http://service-B/add?a="+a+"&b="+b, String.class).getBody();

    }

}

好了,打完收工。

整个工程搭建,请访问我的github:https://github.com/Lovnx/micro-service

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182571.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • obs windows 编译和打包[通俗易懂]

    obs windows 编译和打包[通俗易懂]obswindows编译和打包构建最新版obsstudio;参考https://github.com/obsproject/obs-studio/wiki/Install-Instructions下载并安装VShttps://visualstudio.microsoft.com/zh-hans/downloads/下载并安装QThttps://www.qt.io/off…

    2022年5月7日
    98
  • 比太钱包使用方法及冷钱包存储方案-2

    拖更一个月的我又开始更新了。过完年,恰逢数字货币开始上涨,正好是聊聊钱包的好时候。上文说到比太钱包的冷热模式,这次接上文写冷钱包模式下的发币及公钥监控操作。先从冷钱包模式下发币说起吧:1,打开钱包,点击发送按钮。2,输入收款地址和金额,并点击发送。这里无论是输入比特币金额还是法币金额,钱包会自动换算出另一种货币金额。3,输入钱包密码,准备冷钱包签名。4,生成未签名的交易信息二维码,需使用装有对应…

    2022年4月5日
    156
  • c语言中(int)什么意思_c语言中怎么用int转化char

    c语言中(int)什么意思_c语言中怎么用int转化char1、int;int是C++关键字,表示整型,其大小是32位有符号整型,表示的范围是-2,147,483,648 到2,147,483,647;在声明和定义变量时使用,它表示的意思是所声明或所定义的变量为整型变量。如果其用于函数参数时,其传递方向为值传递,即只能将实参的值传递给形参,而不能将形参的值传递给实参。例如:通过这种方式去进行交换两个数是无法达到目的的。例子1:#include&…

    2022年8月18日
    6
  • leetcode 两数相加(两个数相加分别叫什么)

    publicclasstest{ publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!"); ListNodea=newListNode(0); ListNodeb=newListNode(0); a.val=2; a.next=newListNode(4); a….

    2022年4月10日
    40
  • PetShop4 下载地址

    PetShop4 下载地址http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi转载于:https://www.cnblogs.com/Juniy/archive/2006/11/07/553351.html

    2022年10月17日
    6
  • Android ConstraintLayout 约束布局详解

    Android ConstraintLayout 约束布局详解

    2021年10月1日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号