springcloud负载均衡组件ribbon使用

news/2024/9/21 2:18:33

一、微服务负载均衡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.ryyt.cn/news/62087.html

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

相关文章

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…