第一种方式 使用配置类

如果这个配置类使用@Configuration注解并写在主启动类能够进行包扫描的范围中,那么调用其他微服务,一律使用这一种负载均衡算法。当然也可以写在主启动所在包的外面

配置类的内容如下:

package com.hs.rule;import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @Description:  将ribbon默认的负载均衡方式改为随机的* @Author 胡尚* @Date: 2022/6/9 11:10* @Version 1.0*/
@Configuration
public class MyRuleConfig {@Beanpublic IRule iRule(){return new RandomRule();}
}

然后在主启动类中指定调用某些服务的时候使用我们配置的负载均衡算法

@SpringBootApplication
// 如果只有一个服务就可以直接使用@RibbonClient注解,而不需要@RibbonClients。
// name是写服务提供方的服务名     configuration是指定我们上面创建的配置类
@RibbonClients(value = {@RibbonClient(name = "stock-service", configuration = MyRuleConfig.class)
})
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}
}

第二种方式 使用yaml配置

修改的这种负载均衡算法是使用nacos设置的权重方式

# 使用配置文件的方式修改ribbon默认的负载均衡算法
stock-service: ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

接下来进行测试,首先在nacos管理平台上面修改订单服务stock的权重

然后再进行调用,就可以发现测试效果了。

如果要使用自定义的负载均算法,一般就自己创建一个类,然后继承AbstractLoadBalancerRule抽象类,然后写相应的负载均衡逻辑。最后再使用上面的两种方法,要么在配置类中创建该对象并注册进容器,要么在yml文件中指定全路径

Ribbon修改默认负载均衡策略相关推荐

  1. 4、修改默认负载均衡策略

    第一种方案:通过配置类 第一步:创建项目 **复制 nacos入门案例的第三部分:编写订单服务的项目** 修改名为:order-ribbon 第二步:创建配置类 注意:此处有坑.不能写在@Spring ...

  2. Ribbon自带负载均衡策略比较

    Ribbon自带负载均衡策略比较 策略名 策略声明 策略描述 实现说明 BestAvailableRule public class BestAvailableRule extends ClientC ...

  3. Ribbon的权重负载均衡策略

    WeightedResponseTimeRule根据每个服务器的响应时间计算权重,根据这里得出的权重来选择服务器,相应时间越短的服务器被选择的概率越大. void initialize(ILoadBa ...

  4. spring cloud中通过配置文件自定义Ribbon负载均衡策略

    2019独角兽企业重金招聘Python工程师标准>>> spring cloud中通过配置文件自定义Ribbon负载均衡策略 博客分类: 微服务 一.Ribbon中的负载均衡策略 1 ...

  5. 面试官:你能说说Ribbon的负载均衡策略及原理嘛?

    来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...

  6. SpringCloud组件:Ribbon的负载均衡策略及原理

    来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...

  7. ribbon设置权重_Ribbon负载均衡策略配置

    在这里吐槽一句:网上很多文章真是神坑,你不看还好,看了只会问题越来越多,就连之前的问题都没有解决!!! 不多说了,Ribbon作为后端负载均衡器,比Nginx更注重的是请求分发而不是承担并发,可以直接 ...

  8. ribbon负载均衡策略详解

    一,IRule接口 IRule接口定义了选择负载均衡策略的基本操作.通过调用choose()方法,就可以选择具体的负载均衡策略. // 选择目标服务节点 Server choose(Object va ...

  9. 【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现

    Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现.不同的I ...

最新文章

  1. 在RedHat4 64位操作系统下,安装Oracle 10g
  2. 如何查询oracle死锁,Oracle死锁查看和解决办法汇总
  3. 深入理解javascript原型和闭包(17)——补this
  4. 使用docker的mysql镜像
  5. 从零开始编写自己的C#框架(1)——前言
  6. 第十六期:AWS 瘫痪:DNS 被 DDoS 攻击了 15 个小时
  7. 《人月神话》阅读笔记(三)
  8. Redis命令总结及其基础知识讲述
  9. 心理学Notes:常用心理测量工具的选择
  10. 【转】Java 项目UML反向工程转化工具
  11. ACL2021最佳论文出炉,来自字节跳动
  12. 【备忘录】word利用mathtype进行公式分章节编号和引用
  13. 如何破解WP7并安装xap文件
  14. Agv、Rgv 车辆控制调度系统开发第七篇-选车算法
  15. Matlab的一些常用功能
  16. H3C无线控制器AP license共享配置
  17. 从浏览器中打开我们的应用
  18. labview--VIPM(VI package manager)打开后闪退
  19. 史上最全Maven教程(一)
  20. java毕业设计手机在线销售系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. 多线程并发执行及解决方法
  2. 统计任意字符串中回文字符串的个数
  3. 程序员如何给变量起名字
  4. 2020新年贺岁C++实战开发
  5. unity3D的面试题
  6. 读书笔记:思考快与慢
  7. AS5600 磁编码器的调试经验
  8. HTML、XHTML、CSS与JavaScript入门经典pdf
  9. 定时任务(Schedule的使用)
  10. 数据库设计:概念结构设计