Spring cloud alibaba(二)RibbonLoadBalance

news2024/12/26 11:23:17

一、负载均衡

        其含义就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行;(就是客户端调用服务提供方时的如何调用多个实例的策略)

1、主流负载均衡的方案

        集中式负载均衡:在消费者和服务提供方中间使用独立的方式进行负载;(Nginx)

        客户端根据自己的请求情况做负载均衡,Ribbon就属于客户端自己做负载均衡;

2、客户端的负载均衡

        例如Spring cloud中的Ribbon,客户端会有一个服务器地址列表,再请求发送前通过负载均衡算法选择一个服务器;即在客户端就进行负载均衡算法分配;

3、常见的负载均衡算法

        随机、轮训、加权轮训、地址hash、最小连接数;

二、Ribbion

        Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法。

1、Ribbon扩展功能

        Ribbon相关接口:org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration
IClientConfig:Ribbon的客户端配置,默认采用DefaultClientConfigImpl实现。

        Rule:Ribbon的负载均衡策略,默认采用ZoneAvoidanceRule实现,该策略能够在多区域环境下选出最佳区域的实例进行访问。
        IPing:Ribbon的实例检查策略,默认采用DummyPing实现,该检查策略是一个特殊的实现,实际上它并不会检查实例是否可用,而是始终返回true,默认认为所有服务实例都是可用的。
        ServerList:服务实例清单的维护机制,默认采用ConfigurationBasedServerList实现。        

        ServerListFilter:服务实例清单过滤机制,默认采ZonePreferenceServerListFilter,该策略能够优先过滤出与请求方处于同区域的服务实例。
        ILoadBalancer:负载均衡器,默认采用ZoneAwareLoadBalancer实现,它具备了区域
感知的能力。

2、Ribbon负载均衡策略

        a、RandomRule:随机选择一个Server

        b、RetryRule:对选择的Server做重试,直到选择到一个可用的Server;

        c、RoundRobinRule:轮训选择;

        d、AvailabilityFilteringRule:过滤链接失败的Server,并过滤掉那些高并发的后端Server;其实就是检查Staus里记录的各个Server状态;

        e、BestAvailableRule:选择最小的并发请求的Server,跳过不健康的Server;

        f、WeightedResponseTimeRule:根据响应时间加权,响应时间越长权重越小,被选中可能性越低;

        g、ZoneAvoidanceRule:默认的负载均衡策略,即复合判断Server所在区域的性能和Server的可用性选择Server,在没有区域的环境下,类似于轮询

        h、NacosRule: 优先调用同一集群的实例,基于随机权重

3、饥饿加载

        Ribbon默认懒加载,意味着只有在发起调用时才会创建客户端;可通过配置修改为饥饿加载:ribbon:eger-load:enabled:true ribbon:eger-load:clients:执行需要饥饿加载的服务名

三、LoadBlancer

        Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器, 用来替代
Ribbon。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2054166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用excalidraw搭建自己的中文手写画板

使用excalidraw搭建自己的中文手写画板 成品预览地址:https://guizimo.github.io/excalidraw/ 原excalidraw提供了英文的手写体,但中文还是正正方方的,感觉不搭。希望中文也可以有那样一种手写风格。 本文使用的是excalidraw,它…

ArchWsl 运行图形界面程序

最新的WSL2已经支持图形界面(wslg)了,这里教大家运行GUI应用(桌面环境同理,但是我建议大家不要安装桌面环境,没有桌面环境也可以单独运行GUI应用) 更新WSL 建议更新到最新版本,早期…

web实现drag拖拽布局

这种拖拽布局功能其实在电脑操作系统或者桌面应用里面是经常使用的基础功能,只是有时候在进行web开发的时候,对这个功能需求量不够明显,但却是很好用,也很实用。能够让用户自己拖拽布局,方便查看某个区域更多内容&…

【教学类-72-02】20240819建筑对称图纸02(图案最大化)

背景需求 【教学类-72-01】20240803建筑对称图纸01-CSDN博客文章浏览阅读423次,点赞13次,收藏5次。【教学类-72-01】20240803建筑对称图纸01https://blog.csdn.net/reasonsummer/article/details/140893003 我感觉房子有大有小,有大量空白&…

2、目标识别(颜色识别)

一、根据所使用的视觉模块的官方网站或软件,获取相应颜色的阈值 blue [(23, 74, -119, 19, -125, -29)] #蓝紫色 [(0, 53, -128, 127, -128, -8)] red [(0, 44, 40, 62, 16, 127)] #红色 [(0, 44, 40, 62, 16, 127)] org [(44, 100, 13, 126, 2…

【多线程开发 6】spring中的注解/API的线程问题

【多线程开发 6】spring中的注解/API的线程问题 2024年8月14日 文章目录 【多线程开发 6】spring中的注解/API的线程问题1 Future和CompletableFuture2 hutool的异步任务3 Async4 Schedule5 stream Parallel6 ForkJoinPool7 Transactional 除了Java自带默认线程池,…

mac本地搭建docker+k8s步骤

概览: * kubectl安装 * minikube安装 * dashboard安装 主机配置: * mac M2 (arm架构) 服务及版本概览: 服务名称版本 kubectl v1.29.2 Kubernetes v1.30.0 kicbase v0.0.44 dashboard v2.7.0 docker 26.…

Linux:进程概念

文章目录 进程概念1、冯诺依曼体系结构2、进程2.1基本概念2.2描述进程-PCB2.3组织进程2.4查看进程2.5通过系统调用获取进程标识符2.6通过系统调用创建进程-fork初识 进程概念 1、冯诺依曼体系结构 目前我们认识的计算机中,都是由一个个硬件构成 输入单元&#xff1…

c语言基础-------指针变量作为函数参数

指针变量作为函数参数 在 C 语言中,指针变量作为函数参数是一种常见的做法,它允许函数修改通过指针传递的变量。这是通过指针的地址传递实现的,而不是通过值传递。 指针作为函数参数的优点 修改原始数据:当函数接受一个指针作…

经典游戏,用java实现的坦克大战小游戏

今天给大家分享一个使用java编写的坦克大战小游戏,整体还是挺好玩的,通过对这款游戏的简单实现,加深对java基础的深刻理解。 一、设计思路 1.坦克大战小游戏通过java实现,其第一步需要先绘制每一关对应的地图,地图包括…

机器学习(5)--正则化之L1和L2正则化

文章目录 正则化一、正则化的基本原理二、L1正则化(Lasso)三、L2正则化(Ridge)四、L1与L2正则化的比较 总结 正则化 正则化是一种在机器学习和深度学习中常用的技术手段,旨在提高模型的泛化能力,减少过拟合…

深入探讨C语言中的高级指针操作

目录 指针与内存管理的高级技巧 1. 动态数组的重新分配 2. 内存碎片化的处理 3. 内存对齐 函数指针数组与回调函数的高级用法 1. 基本函数指针用法 2. 函数指针数组 3. 回调函数的使用 指针与数据结构的结合 1. 自定义链表 C语言以其强大的底层操作能力和高效的性能著…

【信创】Linux下EFI引导配置工具efibootmgr _ 统信 _ 麒麟 _ 方德

往期好文:deepin V23 Release 安装与功能介绍!!! Hello,大家好啊!今天给大家带来一篇关于在信创操作系统上使用EFI引导管理器配置工具efibootmgr命令详解的文章。efibootmgr是一个在基于UEFI的系统中管理EF…

AI数字员工技能全开,招生、培训、写教案,样样都行

只需要几个AI数字员工,就可以协助您办一所高质量的学校。 教务管理、教师培训、招生咨询、家校沟通、学生评价、资料整理、学习伴侣、写教案、总结、学生评语等。 这些都可以用AI数字员工来完成。 比如,AI培训专员给教师做制度培训、教学培训&#xf…

裴蜀定理相关结论

裴蜀定理: axbygcd(a,b) 必定有解 1. 有无限个数凑不出来 有无限个数凑不出来 2. 最大凑不出的数字 在 的条件下,最大凑不出的数为 推广:若数字数目大于2,gcd仍然为1,最大凑不出来的数字一定小于上面的结论值,即局…

计算机网络——TCP协议与UDP协议详解(上)

一、前言 1.1 再次理解传输层 传输层是计算机网络中的一层,位于网络层和应用层之间。它主要负责在网络中的两个端系统之间提供可靠的、端到端的数据传输服务。简单理解,传输层就是负责在源主机和目标主机之间提供端到端的数据传输。 传输层的两个主要协…

EasyRecovery 16/17数据恢复软件2024最新永久破解版激活码注册码分享

EasyRecovery (易恢复中国)是由全球著名数据厂商Ontrack 出品的一款数据文件恢复软件。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数码相机、Raid文件恢复等,能恢复包括文档、表格、图片、音视频等各种文件。 开发背…

鸿蒙开发5.0【基于ArkUI的验证码】实现

场景描述 场景一:基于自定义键盘的验证码实现,进入页面后直接输入验证码,第一个验证码输入完后可自动跳到下一个,拉起的键盘是自定义数字键盘,验证码的输入框带选中效果。 场景二:基于系统键盘的验证码实…

顶顶通呼叫中心中间件-一句话识别语音识别安装步骤

顶顶通呼叫中心中间件-一句话模型安装步骤,对接mod_vad。一句话识别(http接口提交录音文件识别) 一、安装一句话模型 一句话识别(http接口提交录音文件识别),比如对接mod_vad(老电话机器人接口) curl -s…

C#中的多线程案例

使用Task写一个进度条 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.For…