客户端负载均衡_什么是负载均衡

news2024/10/6 6:02:56

为什么需要负载均衡

俗话说在生产队薅羊毛不能逮着一只羊薅,在微服务领域也是这个道理。面对一个庞大的微服务集群,如果你每次发起服务调用都只盯着那一两台服务器,在大用户访问量的情况下,这几台被薅羊毛的服务器一定会不堪重负。

负载均衡要干什么事情

负载均衡有两大门派,服务端负载均衡客户端负载均衡。我们先来聊聊这两个不同门派的使用场景,再来看看本节课的主角Spring Cloud Loadbalancer 属于哪门哪派。

服务端负载均衡

在服务集群内设置一个中心化负载均衡器,比如Nginx。发起服务间调用的时候,服务请求并不直接发向目标服务器,而是发给这个全局负载均衡器,它再根据配置的负载均衡策略将请求转发到目标服务。

image-20220310113318345

优点:

  • 服务端负载均衡应用范围非常广,它不依赖于服务发现技术,客户端并不需要拉取完整的服务列表;同时,发起服务调用的客户端也不用操心该使用什么负载均衡策略。

劣势:

  • 网络消耗
  • 复杂度和故障率提升

Spring Cloud Loadbalancer 可以很好地弥补上面的劣势,那么它是如何做到的呢?

客户端负载均衡

Spring Cloud Loadbalancer 采用了客户端负载均衡技术,每个发起服务调用的客户端都存有完整的目标服务地址列表,根据配置的负载均衡策略,由客户端自己决定向哪台服务器发起调用。

image-20220306152134170

image-20220306153235111

优势:

  • 网络开销小
  • 配置灵活

劣势:

需要满足⼀个前置条件,发起服务调用的客户 端需要获取所有目标服务的地址,这样它才能使用负载均衡规则选取要调用的服务。也就是说,客户端负载均衡技术往往需要依赖服务发现技术来获取服务列表。

负载均衡需要解决两个最基本的问题:

第一个是从哪里选服务实例

在Spring Cloud的Eureka微服务系统中,维护微服务实例清单的是Eureka服务治理中心,而具体微服务实例会执行服务获取,获得微服务实例清单,缓存到本地,同时,还会按照一个时间间隔更新这份实例清单(因为实例清单也是在不断维护和变化的)。

第二个是如何选择服务实例

通过过负载均衡的策略从服务实例清单列表中选择具体实例。

注意:

Eurka和Loadbalancer 自然而然地到了一起,一个通过服务发现获取服务列表,

另一个使用负载均衡规则选出目标服务器,然后过着没羞没躁的生活。

什么是Spring Cloud Ribbon

Spring Cloud Ribbon是NetFlix发布的负载均衡器,它有助于Http和Tcp的客户端行为。可以根据负载均衡算法(轮询、随机或自定义)自动帮助消费者请求,默认就是轮询。

问题:

  • 状态 - 停更进维
  • 替代方案 - Spring Cloud Loadbalancer

什么是Spring Cloud LoadBalancer

但是由于Ribbon已经进入维护模式,并且Ribbon 2并不与Ribbon 1相互兼容,所以Spring Cloud全家桶在Spring Cloud Commons项目中,添加了Spring cloud Loadbalancer作为新的负载均衡器,并且做了向前兼容,就算你的项目中继续用 Spring Cloud Netflix 套装(包括Ribbon,Eureka,Zuul,Hystrix等等)让你的项目中有这些依赖,你也可以通过简单的配置,把Ribbon替换成Spring Cloud LoadBalancer。

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

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

相关文章

澳大利亚新版《2023年消费品(36个月以下儿童玩具) 安全标准》发布 旨在降低危险小零件的伤害

2023年9月4日,澳大利亚政府发布了新的儿童玩具强制性安全标准《2023年消费品(36个月以下儿童玩具)安全标准》(Consumer Goods (Toys for Children up to and including 36 Months of Age) Safety Standard 2023)。该强制性标准旨在尽可能地降…

2023/9/24总结

Redis Redis 是一个基于内存的键值数据库 安装 Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)_redis安装_明金同学的博客-CSDN博客 出现上面代表安装成功了 redis 一共有 16 个库 安装后 再安装图形化界面 图形界面十分方便…

Java————网络编程

一 、网络编程基础 1. 为什么需要网络编程 用户在浏览器中,打开在线视频网站, 如优酷看视频,实质是通过网络, 获取到网络上的一个视频资源。 与本地打开视频文件类似,只是视频文件这个资源的来源是网络。 相比本地资…

ubuntu20.04部署ntp服务器ntpd(ntpdate )

文章目录 步骤1. 安装NTP2. 配置NTP3. 重启NTP服务4. 检查NTP服务状态5. 验证NTP同步ntpq -p检查本地ntp服务是否正常服务器不能连外网,如何配置? ntpdate -q xxx查询ntp服务器时间 步骤 1. 安装NTP 首先,在终端中更新你的包列表&#xff0…

vue项目 H5 动态设置浏览器标题

1,先将要展示的标题存本地 if (that.PromotionInfo.Title) {localStorage.setItem("AcTitle", that.PromotionInfo.Title)} 2,现在路由meta中设置标题,再在路由守卫中设置 import Vue from vue import Router from vue-router import prom…

游戏录屏软件推荐,教你录制高清游戏视频

“有没有好用的游戏录屏软件推荐呀,最近当上了游戏主播,平台要求每天都要发一个游戏视频,可是我的游戏录屏软件太拉胯了,录制出来的视频非常糊,导致平台审核不通过,所以想问问大家有没有游戏录屏软件推荐一…

机器视觉检测在流水线上的技术应用

机器视觉在流水线上的应用机器视觉系统的主要功能可以简单概括为:定位、识别、测量、缺陷检测等。相对于人工或传统机械方式而言,机器视觉系统具有速度快、精度高、准确性高等一系列优点。随着工业现代化发展,机器视觉已经广泛应用于各大领域…

【Git】轻松学会 Git:实现 Git 的分支管理

文章目录 前言一、对分支的理解二、分支的创建三、分支的切换3.1 切换到 dev 分支3.2 在 dev 分支上进行文件的修改和提交3.2 来回切换 master 和 dev 分支,查看修改的内容 四、分支的合并五、分支的删除六、冲突的合并6.1 模拟制造冲突6.2 解决冲突 七、分支管理策…

openGauss学习笔记-79 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT应用场景

文章目录 openGauss学习笔记-79 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT应用场景79 MOT应用场景 openGauss学习笔记-79 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT应用场景 本节介绍了openGauss内存优化表(Memory-Optimized Table&am…

Java基于基于微信小程序的快递柜管理系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章:简介第二章、***\*开发环境:\******后端:****前端&am…

msvcp110.dll丢失是什么意思?msvcp110.dll丢失的五种修复方法

在现代社会,计算机已经成为我们生活和工作中不可或缺的一部分。然而,随着计算机技术的不断发展,我们也会遇到各种各样的问题。其中,msvcp110.dll丢失是许多用户经常遇到的问题之一。本文将详细介绍msvcp110.dll丢失的修复方法&…

基于微信小程序的健身房私教预约平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

echarts学习总结

一、新建一个简单的Echarts 首先新建一个vue2的项目,项目中安装Echarts cnpm install echarts --save1、title标题组件,包含主标题和副标题。 2、tooltip提示框组件 3、 legend图例组件 4、 series

算法通过村第九关-二分(中序遍历)黄金笔记|二叉搜索树

文章目录 前言1. 有序数组转二叉搜索树2. 寻找连个正序数组的中位数总结 前言 提示:有时候,我感觉自己一辈子活在两个闹钟之间,早上的第一次闹钟,以及5分钟之后的第二次闹钟。 --奥利弗萨克斯《意识的河流》 每个专题都有简单题&a…

新能源汽车OBC车载充电机(实物拆解)

需要样件请联:shbinzer 拆车邦 车载OBC简介 从产品/系统角度看OBC及在新能源汽车的作用。如下图,是威迈斯的OBC车载充电机,威迈斯今年刚上市,是OBC和DC/DC的领先企业。 图片来源:威迈斯官网(OBC) …

【简单图论】CF898 div4 H

Problem - H - Codeforces 题意&#xff1a; 思路&#xff1a; 手玩一下样例就能发现简单结论&#xff1a; v 离它所在的树枝的根的距离 < m 离这个根的距离时是 YES 否则就是NO 实现就很简单&#xff0c;先去树上找环&#xff0c;然后找出这个根&#xff0c;分别给a 和…

视频监控系统/视频汇聚平台EasyCVR有下级平台注册时出现断流情况该如何排查解决?

视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等&#xff0c;视频智能分析平台EasyCVR融合性强、开放度…

手把手教你制作登录、注册界面 SpringBoot+Vue.js(cookie的灵活运用,验证码功能)

一、用户登录界面 实现思路&#xff1a;用户在界面输入用户名和密码传入变量。用post方法传输到后端&#xff0c;后端接收整个实体对象。将用户名提取出。在dao层方法中通过select注解查询&#xff0c;返回数据库对应的数据对象。如果返回为空则return false。不为空则通过比对…

Mock快速入门使用及组件构造首页

一.什么是Mock.js Mock.js&#xff08;也称为 Mockjs 或 Mock.js&#xff09;是一个用于前端开发的模拟数据生成和接口模拟工具。它的主要作用是帮助前端开发人员在开发过程中模拟后端 API 的响应数据&#xff0c;以便进行测试和开发&#xff0c;而无需实际后端服务器支持。 模…

进灰的iPhone是印度组装?且慢嘲讽,这是中国制造!

苹果的iPhone15Pro max被拆机发现镜头出现灰尘&#xff0c;一些人士第一时间就说是印度制造&#xff0c;然而这些拆机博主晒出的图片显示却是中国制造&#xff0c;显然这与一些人士的预期有所不同&#xff0c;导致如此结果可能与iPhone的组装工期太紧张有关。 苹果的iPhone15生…