高性能:负载均衡

目录

什么是负载均衡

负载均衡分类

服务端负载均衡

服务端负载均衡——软硬件分类

服务端负载均衡——OSI模型分类

客户端负载均衡

负载均衡常见算法

七层负载均衡做法

DNS解析

反向代理


什么是负载均衡

        将用户请求分摊(分流) 到不同的服务器上,提高系统整体并发能力及可靠性。

负载均衡分类

        客户端/服务端

服务端负载均衡

        主要应用在系统外部请求网关层之间,可以用软件/硬件来实现

        Nginx服务端负载均衡示意图:

服务端负载均衡——软硬件分类

  • 硬件负载均衡:可以通过专门的硬件设备(F5,A10,Array),贵但性能强
  • 软件负载均衡:LVS、Nginx、HAproxy

服务端负载均衡——OSI模型分类

          二/三/四/七层负载均衡,最常见的为四层和七层

四层:OSI模型的第四层 传输层,这一层主要协议:TCP/UDP,负载均衡器能在这一层看到数据包里的源端口地址及目的端口地址,基于这些信息通过负载均衡算法,转发到后端真实服务器。LVS(Linux Virtual Server虚拟服务器,Linux内核的4层负载均衡)来做四层负载均衡。

七层:OSI模型的第七层 应用层 这一层主要协议:HTTP   负载均衡器会读取报文数据,然后根据读取的内容(如 URL Cookie)做出负载均衡决策。工作中我们常用Nginx来做7层负载均衡。

四层:性能更强

七层:功能更强

客户端负载均衡

应用于系统内部的不同服务间,可以使用现成的负载均衡组件来实现。

客户端负载均衡器和服务运行在同一个进程或者说同一个java程序中。

Java领域主流的微服务框架Dubbo、SpringCloud等都内置了开箱即用的客户端负载均衡实现。Dubbo默认自带了负载均衡功能;SpringCloud是通过组件形式(如Spring Cloud Load Balancer 、Ribbon)来实现。

        基于Spring Cloud Load Balancer实现的示意图

负载均衡常见算法

  1. 随机法:最简单粗暴,可设置权重

  2. 轮询法:可设置权重

  3. 一致性HASH法:相同参数的请求,总是发到同一台服务器处理

  4. 最小连接法:监控服务器正在处理的请求连接数,遍历服务器节点并选取其中活动连接数最小的一台来响应当前请求

七层负载均衡做法

DNS解析

为同一个主机记录多个IP地址即不同服务器,当用户请求域名时,DNS服务器负责采用轮询算法返回IP地址,这样就实现了轮询版负载均衡。

反向代理

    1. 最常用的反向代理服务器:NGINX

    2.客户端 将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器。

    3.对外暴露的地址是反向代理服务器地址(隐藏了真实的ip地址)。

    4.反向代理“代理”的是目标服务器

收队!

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

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

相关文章

中移链控制台对接4A平台功能验证介绍

中移链控制台具备单独的注册登录页面,用户可通过页面注册或者用户管理功能模块进行添加用户,通过个人中心功能模块进行用户信息的修改和密码修改等操作,因业务要求,需要对中移链控制台的用户账号进行集中管理,统一由 4…

什么是分布式任务调度?怎样实现任务调度

通常任务调度的程序是集成在应用中的,比如:优惠卷服务中包括了定时发放优惠卷的的调度程序,结算服务中包括了定期生成报表的任务调度程序,由于采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务&#xf…

C S S

目录 1.样式定义方式 1.1行内样式表 1.2内部样式表 1.3外部样式表 2.注解 3.选择器 3.1标签选择器 3.2 id选择器 3.3 类选择器 3.4 派生选择器 3.5 伪类选择器 链接伪类选择器: 位置伪类选择器: ​编辑 目标伪类选择器: 复合选…

Winform从入门到精通(37)——FolderBrowserDialog(史上最全)

文章目录 前言1、Name2、Description3、RootFolder4、SelectedPath5、ShowNewFolderButton前言 当需要获取一个可以通过用户自由选择路径的时候,这时候就需要FolderBrowserDialog控件 1、Name 获取FolderBrowserDialog对象 2、Description 用于指示对话框的描述,如下: …

Windows forfiles命令详解,Windows按时间搜索特定类型的文件。

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 forfiles 一、结果输出格式二、按时间搜索三、搜索指定类型文件四、批量删除文件 forfile…

ATTCK v12版本战术介绍——防御规避(四)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术理论知识及实战研究、部分防御规避战术,本期我们为大家介绍ATT&CK 14项战术中防御规避战术第19-24种子技术,后续会介绍防御规避其他子技术&#xf…

【Unity URP】Rendering Debugger和可视化MipMap方案

写在前面 最近开始学习Unity性能优化,是结合了《Unity游戏优化》这本书和教程《Unity性能优化》第叁节——静态资源优化(3)——纹理的基础概念一起学习。在学习纹理优化部分时候遇到了问题,固定管线下Unity的Scene窗口有一个可视化Mipmap的渲染模式&…

PMP/高项 05-项目进度管理

项目进度管理 概念 项目进度管理(Schedule Management) 项目进度管理又叫项目工期管理(Duration Management)或项目的时间管理(Time Management) 是一种为管理项目按时完成项目所需的各个过程 进度管理过程 规划进度管理 定义活动 排列活动顺序 估算活…

【LeetCode】 309.最佳买卖股票时机含冷冻期

309.最佳买卖股票时机含冷冻期(中等) 思路 状态定义 一、很容易想到四种状态: a.今天买入;b.今天卖出;c.昨天卖出,今天处于冷冻期,无法进行操作;d.今天不操作,处于持有…

太酷了,库昊

昨天晚上凌晨3点30,勇士和国王的第7场比赛开打。 在上一局在勇士主场干翻勇士后,国王队的信心倍增,他们用自己的节奏一次次击溃勇士,特别是今天的前两节,国王能能够回应勇士的进球,防守也更有侵略性。今天不…

图扑数字孪生助力智慧冷链园区实现大数据实时监控

前言 近年来,业界学者及企业就智慧冷链物流展开深入研究,2010 年 IBM 发布的《智慧的未来供应链》研究报告中提出智慧供应链概念,并由此延伸出智慧物流概念,即智慧物流是以信息化为依托并广泛应用物联网、人工智能、大数据、云计…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】D 题 航空安全风险分析和飞行技术评估问题 27页论文及代码

【2023 年第十三届 MathorCup 高校数学建模挑战赛】D 题 航空安全风险分析和飞行技术评估问题 27页论文及代码 1 题目 D 题 航空安全风险分析和飞行技术评估问题 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展,针对飞行安全问题的研究显得…

巧用千寻位置GNSS软件| 桥台锥坡放样操作技巧

桥台锥坡放样是针对道路施工中,路桥结合部桥台圆锥形斜坡面进行放样设计的专用程序。本期将给大家介绍如何使用千寻位置GNSS软件实现快速完成桥台锥坡放样。 点击【测量】->【桥台锥坡放样】,从线路库中选择桥台经过的线路或是单独增加桥台 锥坡放样&…

QML动画分组(Grouped Animations)

通常使用的动画比一个属性的动画更加复杂。例如你想同时运行几个动画并把他们连接起来,或者在一个一个的运行,或者在两个动画之间执行一个脚本。动画分组提供了很好的帮助,作为命名建议可以叫做一组动画。有两种方法来分组:平行与…

【无功功率控制】连接到无限电网的小型风电场的无功功率控制(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

jvm之字节码

写在前面 java字节码由单字节的指令(也叫做操作码)组成,但一个 byte 最多能够存储 256 个指令,够用吗?截止到目前是够的,因为指令的个数是200多一点,指令分为如下四类: 1:栈操作指令&#xff…

SmartEngine流程引擎之Custom模式

目录 一、为什么选用SmartEngine 二、各类流程引擎框架简单对比 1、流程设计器推荐 2、什么是BPMN 流程定义解释说明 三、SmartEngine之Custom实操 1、引入依赖 2、典型的初始化代码如下 3、节点如何流转以及流程实例存储问题 4、定义Delegation 关键类 一、为什么选用…

Java 基础入门篇(四)—— 方法的重载与参数传递机制

文章目录 一、方法的定义二、方法的参数传递机制 ★2.1 基本类型的参数传递2.2 引用类型的参数传递 三、方法重载 一、方法的定义 方法的作用:封装一段代码的语法结构,可以被重复调用,以此提高代码的复用性,提高开发效率&#xf…

ChatGPT Plus价格太贵,可以约上三五知己一起上车体验一下,这个项目就能帮到你

对于想体验ChatGPT PLus的小伙伴,可能觉得自己一个人一个月花费20美元,相对于人民币每月137多,确实是一个不少的开支,如果,几个人合作一个账号,这样负担就减少了。刚好,最近逛github发现刚好有一…

小记Java调用C++开发的动态链接库(DLL)

一、背景 五一快乐吖!死肥宅正趁着五一这段时间,努力提升自己! 最近使用Java拦截Windows系统中一些默认事件时,发现了一些瓶颈。 我用Java操作浏览器、用Java最小化其他应用窗口,但是我发现这个操作,他都…