【4.2】Ribbon负载均衡策略

news2024/11/26 12:46:49

【4.2】Ribbon负载均衡策略

  • 1 Ribbon--负载均衡策略
  • 2.1 修改负载均衡规则--代码方式
    • 2.1.1 具体测试:
  • 2.2 修改负载均衡规则--配置文件方式
    • 2.2.1 具体配置
  • 3 总结


Ribbon负载均衡原理 中学习到:
在这里插入图片描述
IRule接口决定了负载均衡的策略。
接下来学习IRule接口的实现有哪些?以及如何修改它的实现。


1 Ribbon–负载均衡策略

Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则:
在这里插入图片描述
默认的实现是ZoneAvoidanceRule
在这里插入图片描述


2.1 修改负载均衡规则–代码方式

通过定义IRule 实现可以修改负载均衡规则,有两种方式:

  1. 代码方式:在order-service中的OrderApplication类中,定义一个新的IRule:
@Bean
public IRule randomRule() {
	return new RandomRule();
}

这个Bean总的类型是IRule,但是实现的时候可以是IRule的任何一种实现。这里RandomRule也就是随机。
这样配置以后就会让负载均衡规则从轮询变成随机


2.1.1 具体测试:

首先启动四个服务:
在这里插入图片描述
将日志清空,然后进入浏览器依次访问
localhost:8080/order/101

localhost:8080/order/104

可以看到8081中有1 和3
在这里插入图片描述
8082中有2和4
在这里插入图片描述
显然这里的规则是轮询
接下来我们尝试改变负载均衡的规则:
打开OrderApplication
在这里插入图片描述
这样我们就将负载均衡的规则设置为了随机。
接下来重启OrderApplication:
再次进入浏览器依次访问
localhost:8080/order/101

localhost:8080/order/104

可以看到8081里面有2 3 4
在这里插入图片描述
8082里面有1
在这里插入图片描述
可以看出这里负载均衡的规则是随机。

注意,代码方式的配置是作用于全局的,在order-service里不管是调用哪一个微服务,都会变成随机。


2.2 修改负载均衡规则–配置文件方式

通过定义IRule实现可以修改负载均衡规则的第二种方式:

  1. 配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则:
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

在这种方式可以看到,它会先指定服务名称再去指定负载均衡的规则。
因此,这种方案是针对于某一个微服务而言。


2.2.1 具体配置

找到order-service的application.yml文件,添加:
在这里插入图片描述
接下来重启Order服务,回到浏览器:依次访问
localhost:8080/order/101

localhost:8080/order/104
在这里插入图片描述
可以看出这里是随机而不是轮询。


3 总结

在这里插入图片描述
第一种方式作用范围是全局
第二种配置方式是只针对某个服务而言。


By --Suki 2023/1/5

知识内容来自于黑马程序员视频教学和百度百科。

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

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

相关文章

【Java编程进阶】Object类及常用方法详解

Java 编程基础教程系列:Java 编程进阶之路【从入门到精通】 ,从入门到精通一站学习,买不了吃亏,买不了上当!! 文章目录1. Object类2. 常用的方法2.1 toString 方法2.2 equals 方法2.3 hashcode 方法3. 注意…

Verilog语法笔记(夏宇闻第三版)-数据类型及其常量、变量

目录 常量: 整数: x和z值: 负数: 下划线(underscore_): 参数(Parameter)型: 变量: wire型: reg型: memory型: Verilog HDL中总共有十九种数据类型,数据类型是用来表示数字…

SSH远程连接服务详解

远程连接服务器 一,远程连接服务器简介 1、什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录 linux 主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在…

MyBatis Plus学习笔记

MyBatis Plus 国产的开源框架,基于 MyBatis 在Mybatis-Plus中,内置了代码生成器,我们可以通过该工具,生成我们需要的代码,例如:entity层,controller层,mapper层,service…

Java面向对象:构造器、this

目录构造器学构造器的目的构造器的作用样例构造器的注意事项总结this关键字this关键字是什么样例this关键字的作用总结构造器 学构造器的目的 真正知道对象具体是通过调用什么代码得到的。能够掌握为对象赋值的其他简便写法。为以后学习面向对象编程的其他内容做支撑。 构造…

Python实现可视化案例:采集天气数据并可视化分析

前言 最近长沙的天气,真的就是不能理解,大起大落的,就跟我的心情一样… 有点无聊就来采集一些天气数据,做个可视化的小案例吧(我采集的是以前北上广深的天气数据哈) 实现案例的步骤 一.分析数据来源 从…

狂神说笔记——Linux快速入门27

Linux快速入门 参考于:B站狂神视频! Java开发之路:JavaSE、MySQL、前端(HTML、Css、JS)、JavaWeb、SSM框架、SpringBoot、Vue、SpringCloud、Mybatis-plus、Git、Linux (CentOS 7) 操作系统&…

【Linux】-- 程序地址空间

目录 程序地址空间 进程地址空间 - 虚拟地址空间 概念引入(浅) 初步理解结构 深入理解虚拟地址 为什么要有地址空间? 程序地址空间的角度理解挂起 程序地址空间 C/C在Linux下的程序地址空间分布: 栈向低地址增长&#xff0…

透过现象看本质,我找到了Netty粘包与半包的这几种解决方案

1、粘包与半包 啥也不说了,直接上代码是不是有点不太友好,我所谓了,都快过年了,还要啥自行车 我上来就是一段代码猛如虎 1.1 服务器代码 public class StudyServer {static final Logger log LoggerFactory.getLogger(StudyS…

怎样进行股票量化对冲策略分析?

股票量化对冲策略的分析需要从各方面去深入了解,就比如说明确量化和对冲的概念,可以先下载OA系统中“量化对冲 产品基础知识的学习,也要知道量化对冲产品在构建股票多头的同时,也构建期货空头。在市场不稳定的操作情绪之下&#x…

Git——初识git

1、git概述 1.1 简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于…

rtl8188eus Linux驱动移植

rtl8188eus Linux驱动移植 rlt8188eus作为无线USB网卡,可以给我们的Linux设备提供无线上网能力,也能配置为AP,给其它无线设备提供上网能力。在使用较低版本的内核时,内核中不含rtl8188eus驱动,因此尝试自己移植&#…

1、常见的存储设备

文章目录较为常见的存储设备机械硬盘简介固态硬盘简介U盘简介固态U盘MMC卡SD卡简介TF卡NM卡MS卡CF卡CFExpress卡磁带光盘较为常见的存储设备 目前较为常见的存储设备,从电脑用的: 机械硬盘固态硬盘U盘固态U盘 到单反相机、运动相机、手机、行车记录仪…

BigDecimal 基本使用和常用方法

背景 涉及到比较大的数字之间的计算,使用float、double这样的浮点数就不那么准确了。因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。所以在商业计算中基本要用java.math.BigDecimal 一、初始化使用…

蹭秦霄贤流量,郭德纲凌晨时分转发老秦动态

都知道德云社董事长王慧很忙,每天除了打理公司业务,还要照顾众多徒弟们的衣食住行。王慧作为德云社董事长,她的忙都在情理之中,而郭德纲作为德云社总班主,他的时间就更加弥足珍贵了。 可是谁能想到,就是这样…

VSCode配置C++开发环境:OpenCV

文章目录Linux编译调试配置OpenCVWin10编译调试配置OpenCV参考最近在做深度学习的C部署相关工作,于是写下这篇文档记录环境配置的过程。环境配置是一项非常繁琐的工作,无论从大学做相关作业还是到工作上。做这项工作需要技术的同时,还需要点运…

从0到1完成一个Vue后台管理项目(一、创建项目)

1.创建文件夹 这很简单,自己选一个盘,然后建一个文件夹即可 我选择的是D盘,最后的目录是vue-admin 注意:最后的目录一定要是英文 2.创建项目 初始化 npm init -y 局部安装vue-cli vue-cli的版本一直在更新,所以不推…

品牌舆情总结及品牌修复,品牌舆情监测监控怎么做?

如今互联网大数据时代,信息流通越来越快,影响覆盖面广。品牌一旦出现舆论,很容易引起大范围的热议,对品牌发展造成不利影响,进而影响品牌声誉。接下来TOOM舆情监测小编带您简单了解品牌舆情总结及品牌修复,…

Linux_Study

文章目录1.操作系统概述1.1 操作系统的作用1.2 常见的操作系统2.Linux介绍2.1 诞生2.2 Linux内核3. Linux基础操作3.1 虚拟机快照3.2 Linux 目录结构3.3 命令、命令行3.4 ls命令(列表命令)3.5 cd/pwd命令(目录命令)3.6 相对路径、…

OPENCPU学习---开发环境搭建

BC260Y-CN模组移远公司提供了QuecOpen的开发方案,可以通过提供的SDK中相应的接口快速进行应用开发。开发环境的搭建,首先要准备好开发板、SDK包以及下载工具,准备好后进行编译配置即可进行开发。目前移远提供的BC260Y开发SDK版本为&#xff1…