ribbon的7种负载均衡算法和替换方法
一,ribbon核心组件IRule自带的7中负载均衡算法
1,轮询 com.netflix.loadbalancer.RoundRobinRule
2,随机 com.netflix.loadbalancer.RandomRule
3,重试 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内进行重试,获取可用的服务 com.netflix.loadbalancer.RetryRule
4,对RoundRobinRule的扩展,响应速度越快的实例选择权重越多大,越容易被选择 WeightedResponseTimeRule
5,会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务 BestAvailableRule
6,先过滤掉故障实例,再选择并发较小的实例 AvailabilityFilteringRule
7,默认规则,复合判断server所在区域的性能和server的可用性选择服务器 ZoneAvoidanceRule
二,替换方法(以随机算法为例)
1,自建package(主启动类扫描的包分开放置位置)
2,新建MyRibbonRuleConfig配置类
package com.tigerhhzz.myribbonrule;import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @author tigerhhzz* @date 2022/6/14 14:53*/
@Configuration
public class MyRibbonRuleConfig {@Beanpublic IRule MyRibbonRuleConfig (){//定义随机负载均衡算法return new RandomRule();}
}
3,主启动类上加上@RibbonClient(…)注解
package com.tigerhhzz.springcloud;import com.tigerhhzz.myribbonrule.MyRibbonRuleConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;/*** @author tigerhhzz* @date 2022/6/13 9:18*/
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MyRibbonRuleConfig.class)
public class OrderMain80 {public static void main(String[] args) {SpringApplication.run(OrderMain80.class, args);}
}
三,轮询负载均衡算法的原理
** 轮询算法原理:请求数/集群数 %取模(取余数)为服务器位置的下标**
ribbon的7种负载均衡算法和替换方法相关推荐
- Java实现5种负载均衡算法
Java实现5种负载均衡算法 1. 轮询算法 import com.google.common.collect.Lists;import java.util.List; import java.uti ...
- Dubbo内置4种负载均衡算法(详解)
1.1 什么是负载均衡 在实际开发中,一个服务基本都是集群模式的,也就是多个功能相同的项目在运行,这样才能承受更高的并发,这时一个请求到这个服务,就需要确定访问哪一个服务器 Dubbo框架内部支持负载 ...
- 五分钟让你搞懂Nginx负载均衡原理及四种负载均衡算法
前言 今天这篇文章介绍了负载均衡的原理以及对应的四种负载均衡算法,当然还有对应的指令及实战,欢迎品尝.有不同意见的朋友可以评论区留言! 负载均衡 所谓负载均衡,就是 Nginx 把请求均匀的分摊给上游 ...
- 微服务的几种负载均衡算法
目录 一.负载均衡 二.负载均衡算法 1.静态负载均衡 2.动态负载均衡 三.Dubbo负载均衡的四种算法 1.基于权重随机算法RandomLoadBalance 2.基于最少活跃数算法LeastAc ...
- 常见的几种负载均衡算法
1.轮询 将所有请求,依次分发到每台服务器上,适合服务器硬件相同的场景. 优点:服务器请求数目相同: 缺点:服务器压力不一样,不适合服务器配置不同的情况: 2.随机 请求随机分配到各台服务器上. 优点 ...
- Ribbon负载均衡 算法
1.Ribbon 简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为.为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助 ...
- Ribbon自定义负载均衡算法
Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接超时 ...
- 【详解】Ribbon 负载均衡服务调用原理及默认轮询负载均衡算法源码解析、手写
Ribbon 负载均衡服务调用 一.什么是 Ribbon 二.LB负载均衡(Load Balancer)是什么 1.Ribbon 本地负载均衡客户端 VS Nginx 服务端负载均衡的区别 2.LB负 ...
- 5种Dubbo负载均衡算法(看这一篇就够了)
文章目录 1.概述 2.随机+权重(random) 3.轮询+权重(roundrobin) 4.最少连接(leastactive) 5.最短响应(shortestresponse) 6.一致性哈希(c ...
最新文章
- linux u盘 挂载 type,Linux挂载U盘报错:mount: unknown filesystem type 'ntfs'
- bzoj1110: [POI2007]砝码Odw
- stm32呼吸灯程序_学习STM32从点灯开始!
- golang 怎么把指针内容也打印出来_FDM工艺3D打印出来的模型表面粗糙怎么解决?...
- vue 深度拷贝数组_前端深拷贝和浅拷贝
- ASP.net 判断上传文件类型的三种方法
- 13-栈的简单应用-递归
- 020-python函数和常用模块-文件操作
- 手机电子词典_如何把手机变成一款英语学习神器?
- tracePro材料目录与名称
- 华为HG8120C光猫换天邑TEWA-600AGM(百兆换千兆)的过程记录
- Elasticsearch高级(Shards、高可用集群搭建)
- 国外网站淘来的invocie java代码
- 使用ES文件浏览器通过Android设备访问Win7电脑上的共享文件
- 利用Python轻松实现抠图,背景色更换
- 压缩算法:字符串(JSON)压缩和解压【JDK之Deflater压缩与Inflater解压】
- 使用 Electron 给前端项目 打包成exe
- 二、Oracle数据库的创建—通用
- 全力以赴提升粮食产能建设责任担当
- typescript (一) 数据类型之 基础数据类型
热门文章
- druid连接池mysql自动关闭_druid连接池
- C++时间库 chrono
- IDEA 插件activate-power-mode炫酷插件安装
- 【ElasticSearch】什么是ES?ES的安装
- 波兰女诗人辛波丝卡Love at First Sight《一见钟情》中英文完整对照
- c# textBox中只能输入数字及ABCDEF六个大写字母,小写字母自动转换为大写字母
- C#【控件篇】TextBox中只能输入16进制数的格式(长度:2,字母只能是大写)
- PHP fread,PHP fread文件指针位置
- 第14周翻译:Stairway to Transaction Log Management in SQL Server, Level 5: Managing the Log in Full Recov
- buu RSA what 1