Spring Cloud LoadBalanced

news2024/12/23 4:36:31

负载均衡(Load Balance,简称 LB)  是⾼并发, ⾼可⽤系统必不可少的关键组件.
当服务流量增⼤时, 通常会采⽤增加机器的⽅式进⾏扩容, 负载均衡就是⽤来在多个机器或者其他资源中, 按照⼀定的规则合理分配负载.

负载均衡的⼀些实现

就像是eureka中对请求进行轮询的方式

服务多机部署时, 开发⼈员都需要考虑负载均衡的实现, 所以也出现了⼀些负载均衡器, 来帮助我们实现负载均衡.

注:负载均衡分为服务端负载均衡和客⼾端负载均衡.
服务端负载均衡
在服务端进⾏负载均衡的算法分配.
⽐较有名的服务端负载均衡器是Nginx. 请求先到达Nginx负载均衡器, 然后通过负载均衡算法, 在多个服务器之间选择⼀个进⾏访问.

客⼾端负载均衡
在客⼾端进⾏负载均衡的算法分配.
把负载均衡的功能以库的⽅式集成到客⼾端, ⽽不再是由⼀台指定的负载均衡设备集中提供.
⽐如Spring Cloud的Ribbon, 请求发送到客⼾端, 客⼾端从注册中⼼(⽐如Eureka)获取服务列表, 在发
送请求前通过负载均衡算法选择⼀个服务器,然后进⾏访问

Spring Cloud LoadBalancer

1.使⽤Spring Cloud LoadBalancer实现负载均衡

1.1. 给 RestTemplate 这个Bean添加 @LoadBalanced 注解就可以

2.负载均衡策略

Spring CloudLoadBalancer 仅⽀持两种负载均衡策略: 轮询策略 和 随机策略
1.
轮询(Round Robin): 轮询策略是指服务器轮流处理⽤⼾的请求. 这是⼀种实现最简单, 也最常⽤的
策略. ⽣活中也有类似的场景, ⽐如学校轮流值⽇, 或者轮流打扫卫⽣.
2. 随机选择(Random): 随机选择策略是指随机选择⼀个后端服务器来处理新的请求

默认的是轮询策略

⾃定义负载均衡策略:

1、定义随机算法对象, 通过 @Bean 将其加载到 Spring 容器中
此处使⽤Spring Cloud LoadBalancer提供的 RandomLoadBalancer

 注意: 该类需要满⾜:
①不⽤ @Configuration 注释
②在组件扫描范围内

2、使⽤ @LoadBalancerClient 或者 @LoadBalancerClients 注解
在 RestTemplate 配置类上⽅, 使⽤ @LoadBalancerClient 或 @LoadBalancerClients 注解, 可以对不同的服务提供⽅配置不同的客⼾端负载均衡算法策略.
由于这个项⽬中只有⼀个服务提供者, 所以使⽤@LoadBalancerClient

@LoadBalancerClient 注解说明
1. name: 该负载均衡策略对哪个服务⽣效(服务提供⽅)
2. configuration : 该负载均衡策略 ⽤哪个负载均衡策略实现

.

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

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

相关文章

【工具使用】EMACS的verilog_mode脚本

#工作记录# 俗话说不会玩连连看的工程师不是一个好的SoC工程师。 在做集成工作的时候,集成连线估计是一件比较繁琐且容易出错的事情,连线类型定义出错、位宽问题、连线众多等等问题,此时使用由Veripool带来的verilog_mode简直是令人神清气爽…

Linux云计算 |【第一阶段】ENGINEER-DAY2

主要内容: 磁盘空间管理fdisk、parted工具、开机自动挂载、文件系统、交换空间 KVM虚拟化 实操前骤: 1)添加一块硬盘(磁盘),需要关机才能进行操作,点击左下角【添加硬件】 2)选择2…

Qt:26.Qt项目:贪吃蛇游戏

一、项目功能演示: 开始界面可以点击进入游戏。 点击进入游戏之后,切换到选项界面,该界面可以选择游戏难度,回退,以及查询最近一次游戏得分。 游戏具体界面如下。贴图啥的可以自己换,本人审美不咋行&#x…

SPA Fiori开发实战课程(一)

前言 由于工作需要,对Fiori的开发有了一些具体实践,所以做一些记录和总结。 准备工作 1. 对前端有一定的了解,熟悉Node.js,Vue等前端服务器和基础框架。 2. 后端使用ABAP系统。 3. 使用Visual Studio Code进行开发。 工程搭建 打…

TIMO后台管理系统:基于SpringBoot2.0的模块化快速开发平台

摘要 随着软件技术的快速发展,后台管理系统的构建成为企业级应用的重要组成部分。本文旨在介绍TIMO后台管理系统的设计与实现,该系统基于Spring Boot 2.0、Spring Data JPA、Thymeleaf和Shiro等主流技术构建,采用模块化设计以简化开发和维护…

第2章 矩阵

A 乘以此列向量,1的位置依次往下,所以A的列向量全为0 B C、D 取BE 要统一

设计模式——模版方法和策略模式

前言 作为一名资深CV工程师,学会为自己减少工作量乃重中之重。但只是一味地CV,只会因为劣质代码而让自己的工作量加倍,为了将来不被繁重的维护工作而打扰自己的休息日,为了更好的节能,学习设计模式,刻不容缓…

goLang 通过 Select + Channels 实现定时任务与调度

time 包 在与 channel 结合时提供了很多有用的功能,其中 time.Ticker 结构体能够处理定时事件,它会定期在指定 channel 上发送时间值。在这篇文章中,我们深入探讨了如何使用 Go 语言中的 time 包与 channel 结合来处理定时事件和任务调度。通过 time.Ticker 结构体的周期性触…

MySQL(终章)视图, 用户管理, C连接MySQL.

目录 1.视图; 2.用户管理; 1.视图: 1.1 概念和基本操作: 视图本质就是表结构, 虚拟表. 视图和基表数据的改变都会相互影响. 创建视图语法: create view 视图名 as select语句; 修改视图: update set ; 删除视图: drop view 视图名; 1. 2 视图使用规则: …

【java】力扣 跳跃游戏

文章目录 题目链接题目描述代码1.动态规划2.贪心 题目链接 55.跳跃游戏 题目描述 代码 1.动态规划 1.1 dp数组的含义 dp[i]:从[0,i]的任意一点处出发,你最大可以跳跃到的位置。 例如nums[2,3,1,1,4]中: dp[0]2 dp[1]4 dp[2]4 dp[3]4 dp[4]8&#xff…

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备,支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展,能够与医院HIS、集成平台的有效集成和融合,帮助医院实现了全院医学影像…

大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: HadoopHDFSMapReduceHiveFlumeSqoopZookeeperHBaseRedis 章节内容 上一节我们完成了: HBase …

更改若依框架的包名

使用KIT更改 官网:http://www.goldpankit.com 具体步骤 1. 打开KIT官网,选择Ruoyi-Vue框架,如下图所示 2. 点击构建框架按钮,如下图所示 3. 填写框架参数并点击立即构建 4. 下载ZIP并解压即可,构建后内容如下 这样…

《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》

这篇论文的标题《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》可以翻译为《探索对齐的互补图像对用于盲运动去模糊》。从标题可以推断,论文的焦点在于开发一种算法或技术,利用成对的图像来解决运动模糊问题,特别是在不知道模糊核(即造成模糊…

基于牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)的无人机三维路径规划

牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)是一种新型的元启发式算法(智能优化算法),该成果由Sowmya等人于2024年2月发表在中科院2区Top SCI期刊《Engineering Applications of Artificial Intelligence》上。 1、算法原理…

(vue)Vue读取public中的json文件,打包后只需更改包文件

(vue)Vue读取public中的json文件,打包后只需更改包文件 背景:增加账号需求。原本是在页面,每次都需技术人员添加再打包部署,现在放到json里,以后直接服务器改json就行。 旧版: let userArr [{username:aaa,password:…

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP)-解读

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP) 3.7.1 企业资源规划的概念3.7.2 企业资源规划的结构3.7.2.1 生产预测3.7.2.2 销售管理(计划)3.7.2.3 经营计划(生产计划大纲)3.7.2.4 …

IDEA双击卡住打不开问题解决

双击idea图标一直卡在这个页面 解决方案: 随便找个文件 edit with intellij idea打开 删除最近安装的插件 apply 然后重启

C++容器之array

C array容器 特点 array是固定大小数组。 C中,array是一个模板类,提供了数组的功能,在许多方面比原始的 C 风格数组更为强大和灵活。 主要特点 固定大小: std::array 的大小在编译时确定,运行时无法修改。包含全部 STL 功能:…

神经网络之循环神经网络

目录 一、循环神经网络概述:1.传统神经网络与循环神经网络的区别:2.循环神经网络定义: 图片来自:深度学习———循环神经网络 一、循环神经网络概述: 1.传统神经网络与循环神经网络的区别: MLP、卷积神经…