springcloud负载均衡组件ribbon使用

news/2024/12/25 9:45:31/文章来源:https://www.cnblogs.com/qwg-/p/18420283

一、微服务负载均衡ribbon策略如下:

1、线性轮询策略: RoundRibbonRule 

2、重试策略:RetryRule

3、加权响应时间策略:WeightedResponseTimeRule

4、随机策略:RandomRule

5、最空闲策略:BestAvailableRule

6、区域感知轮询策略:ZoneAvoidanceRule(默认)

每个策略对应什么意思,基本也就是字面所示,默认策略是区域,如果没有区域,那就是轮询策略

二、那如何修改默认的策略

有两种方法:1、使用配置类;2、使用配置文件配置

方法一:使用配置类:

每个轮训策略的父类都是IRule(里面的核心方法就是choose,用来选择服务实例),我们只需要实现它重新定义轮训策略即可

①新建配置类

@Configuration
public class RibbonRandomRuleConfig {@Beanpublic IRule iRule(){return new RandomRule();}
}

有两个注意点:1、类需要返回IRule这个对象,并且方法名必须是iRule;2、该配置类的不能和启动类所在@SpringBootApplication里面的@ComponentScan同级别,这个是源码里面扫描的时候,如果和@ComponentScan同级,那就会让所有的服务提供方都共享这个负载均衡策略,即使别的服务配置了不同的轮训策略依旧会失效。

 2、在启动类上配置扫描

配置完成,去测试下就可以看下效果。如果想换轮训策略,只需要在返回的config配置类里面返回对应的策略即可,如下为IRule策略

 

方法二:使用配置文件配置

在消费端(order-ribbon)的application.yml里面配置如下ribbon配置,注意这个stock-service是服务提供方

stock-service:  服务提供方ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

这里配置的是nacos权重策略,这里是包的完整路径

 

如果是直接随机或者轮训的策略,那到此为止了,那这个是基于nacos的权重策略的,所以需要去nacos里面配置下实例的权重,如下

 

 这IRule有个接口AbstractLoadBalancerRule是辅助IRule负载均衡策略选取适合的服务端可用实例,简单理解就是可能服务端有多种类型的,而这个接口就能找到你要的那个服务端实例,比如此处要的就是stock-service这个名称的服务端实例,而不是别的,order-stock里面的application.yml里面的stock-service也是注明要这类的服务端实例。

到此,这使用ribbon组件两种方式就已经完成,可自行选择

 

以上内容仅学习使用!

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain4j炸裂!Java开发者打造AI应用从未如此简单

LangChain4j 的目标是简化将大语言模型(LLM)集成到 Java 应用程序中的过程。 1 实现方式 1.1 标准化 API LLM 提供商(如 OpenAI 或 Google Vertex AI)和向量嵌入存储(如 Pinecone 或 Milvus)使用专有 API。LangChain4j 提供了标准化 API,避免了每次都需要学习和实现特定…

这些Salesforce开发领域的术语,你知道多少?(业内术语之系列五)

Salesforce开发人员一直都是生态系统内的主力军,其工作内容也比较广泛,职责范围从基于代码的任务到需要一定商业敏锐度的工作。 毋庸置疑,在Salesforce Developer领域存在着大量行业术语,并且使用范围广,使用频率高,一起来先睹为快吧! Developer领域的术语 SFDX 全称:S…

Camstar建模数据太多,打开很慢,默认只查前200行

此处举例:Product产品建模。(其他:思路一致) Oracle 版本:where ROWNUM<200 SQLServer 版本:select top 200😘宝子:除非不再醒来,除非太阳不再升起,不然都请你好好生活,挣扎着前进,开心的笑。(●◡●)

升讯威在线客服系统如何高性能同时支持 MySQL 和 SQL Server

详细介绍升讯威在线客服系统是如何高性能同时支持 MySQL 和 SQL Server 的,经过实践验证,可在低配服务器上无压力支持超 2000 人同时在线。升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀…

易优eyoucms网站留言验证码怎么调用

前台留言模型的图形验证码标签调用 比如需要在留言表单里加入图形验证码,复制下方黄色代码在留言标签中 {eyou:guestbookform}{eyou:guestbookform type=default}<form method="POST" enctype="multipart/form-data" action="{$field.action}&quo…

易优eyoucms网站留言增加验证码功能

<!-- 验证码开始 -->{eyou:notempty name=$field.IsVertify}<div><input type="text" name="vertify" autocomplete="off" placeholder="图片验证码"/><img {$field.VertifyData} title="看不清?点击更换验…

易优eyoucms网站系统报错:unserialize(): Error at offset 0 of 1571 bytes

遇到“unserialize(): Error at offset 0 of 1571 bytes”这类错误,通常是因为缓存文件损坏或格式不正确。针对EyouCMS 1.5.1版本,可以采取以下步骤来解决这个问题: 解决方案一:清除缓存文件通过FTP访问服务器:使用FTP客户端(如FileZilla、WinSCP等)连接到服务器。 导航…

易优eyoucms网站表单留言增加验证码怎么做

前台留言模型的图形验证码标签调用 比如需要在留言表单里加入图形验证码,复制下方黄色代码在留言标签中 {eyou:guestbookform}{eyou:guestbookform type=default}<form method="POST" enctype="multipart/form-data" action="{$field.action}&quo…

洛谷 P5569 石子合并——题解

洛谷P5569题解传送锚点摸鱼环节 [SDOI2008] 石子合并 题目描述 在一个操场上摆放着一排 \(N\) 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的 \(2\) 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将 \(N\) 堆石子合并成…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U3 集成驱动版,在个人电脑上运行企业级工作负载 请访问原文链接:…

【日记】书荒了(337 字)

正文几乎玩了一周之后上班的第一天。确实有些惫懒。基本都在解决一些之前代班同事留下来的遗留工作。整理了一下,发现工作清单上好多任务都没什么意义。今天打印准考证,发现考试地点在市里…… 本来还想着,考完去找灵玩儿,这下不行了。而且一天考两科。这我是真没想到。所以…

“DLL load failed: 找不到指定的模块。”的一种解法

问题来源: 本身在Al studio的环境训练是没问题的,由于某些问题在平台不好弄,于是copy了项目,anconda建立了paddle-gpu的虚拟环境也搭建了,但是在跑项目的时候出现了如下错误:网上了查看了许多方法,参考着试了不少 测试方法一:缺少的dll文件补上了,失败告终 测试方法二…