集群、负载均衡集群、高可用集群简介,LVS工作结构、工作模式、调度算法和haproxy/nginx模式拓扑介绍

一.集群的定义

1.定义

2.分类

(1)负载均衡集群(LBC/LB)

(2)高可用集群(HAC)

二.使用集群的意义

1.高性价比和性能比

2.高可用性

3.可伸缩性强

4.持久和透明性高

三.常见的两种集群模式拓扑

1.LVS(-DR)集群模式

(1)工作架构

(2)LVS下的相关术语

(3)LVS的工作模式

VS/NAT:

VS/DR:

VS/TUN:

(4) LVS调度器算法

固定调度:

动态调度:

 2.haproxy/nginx模式

 四.常用集群软硬件列举

1.企业常用集群软件

2.企业常用集群硬件


 

一.集群的定义

1.定义

是一组协同工作的服务器,在外部访问者看来是一个整体。集群是一种并行或分布式系统,包括一个互连的整体计算机集合作为一种单一、同意的计算资源使用,使用集群管理服务,可以获得更高的性能、可靠性和灵活性,实现资源的高度可用。集群又可以分为负载均衡集群、高可用性集群、高性能计算机群、网络计算等类别。

2.分类

(1)负载均衡集群(LBC/LB)

也可以称服务器群,一般通过一个或多个前端负载均衡器将数据请求转发到后端部分服务器上,使客户访问请求压力在各服务器之间尽可能分摊,包括程序处理负载和网络流量负载,也可以实现访问请求在各节点间动态分配,灵活负载。

(2)高可用集群(HAC)

高可用集群下的服务器运行速度和响应速度较快,一般是已配置好的集群服务中有任意节点失效时,将其分配到的压力自动转移到其他正常节点上,一般情况下这个节点的失效不会影响整个集群的运行,如果主节点失效,次节点完全可以接替其身份和资源进一步正常处理主节点下的任务。

二.使用集群的意义

1.高性价比和性能比

以pc服务器或RISC服务器组成集群可以大规模降低部署成本,分开管理,在性能上也有很大的优势

2.高可用性

在硬件和软件上都有冗余,可以进一步检测到软硬件的故障,进而解决或屏蔽故障有正常运转的节点继续提供服务

3.可伸缩性强

集群系统的节点数可以到几千甚至几万个,在其上甚至可以简易地去开发应用程序

4.持久和透明性高

服务器对于客户端来说,部分服务器的加入和退出不会中断对用户的服务,对用户来说相对透明

三.常见的两种集群模式拓扑

1.LVS(-DR)集群模式

(1)工作架构

如图示,多台提供服务的服务器(组)和数据备份(共享存储)服务器位于局域网内,提供服务的服务器又连接到广域网,用户通过互联网/加速器能够进行访问。LVS模式下用户发出数据请求,LVS负载均衡服务器组收到后按自身算法1将请求通过广域网交给apache/nginx服务器组,apache/nginx服务器组处理好后直接将结果返还给用户,无需经过负载均衡组。

LVS-DR负载均衡服务器组所在层又可称为load balancer(包含director server),apache/nginx服务器群组所在层又可称为server array(包含real server——集群节点),后方的数据共享存储层可称为shared storage。

23f7cac734324b6d859ad077804a8da6.png

load balancer:位于整个集群系统最前端,由一台或多台负载调度器组成,LVS是安装在director server上的,其中包含有LVS功能设定的路由表,通过路由表把数据请求抓发给server array,还可以在direct server上安装对real server的监控板块,检测健康状态。

server array:由一组真实的应用服务器组成,每个real server之间通过lan或wan相连接,在真实场景中,director server可以充当real server。

shared storage:为所有的real server提供数据存储和空间共享服务,保持内容一致性,一般是由磁盘阵列设备、nfs文件共享系统、gfs文件系统或ocfs2文件系统等等组成

(2)LVS下的相关术语

虚拟IP地址——VIP,director server用来向客户端计算机提供服务的IP地址

真实IP地址——RIP,在集群节点上使用的IP地址

director server的IP地址——DIP,director用于连接外网的IP地址

客户端主机IP地址——CIP,客户端请求集群服务器的IP地址,用作发送给集群的数据请求的源IP地址

(3)LVS的工作模式

 LVS的IP负载均衡通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件。主要作用是:安
装在Director Server上,同时在Director Server上虚拟出一个IP地址,客户端访问时也要通过这个IP地址。这个虚拟IP一般称为LVS的VIP,访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。当用户的请求到达负载调度器后,IPVS重点关注调度器如何将请求发送到提供服务的Real Server节点,Real Server节点如何返回数据给用户,IPVS实现负载均衡机制有DR、NAT、TUN三种。

VS/NAT:

网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server要原路经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户。

VS/DR:

直接路由技术实现虚拟服务器,应用最多,要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT相同,但VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,节省了开销,性能最好。

VS/TUN:

IP隧道技术实现虚拟服务器,应用较少不要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT方式相同,但调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,调度器只处理用户的报文请求,吞吐量较高。

(4) LVS调度器算法

调度器在收到入站请求时需要立即做出决定将请求分配给哪个服务器(节点)

固定调度:

rr:常用调度算法之一,轮询调度,在real server中均摊请求,此算法适用于处理性能相差不大的情况。

wrr:常用调度算法之一,加权轮循调度,依据不同real server的权重值分配任务,权值较高的real

server将优先分配,分配到的连接数也比权值较低的real server多,如果权值相同那么real serve

得到相同数目的连接。

dh:目的哈希调度,以目的地址为关键字查找一个静态hash表来分配real server。

sh:源地址哈希调度,以源地址为关键字查找一个静态hash表来分配real server。

动态调度:

lc:常用调度算法之一,最小连接数调度,会把新的连接请求发送到IPVS表中连接数最小的real

server。

wlc:常用调度算法之一,加权最小连接数调度,依次选取“TCP连接数/权重值”为最小的real server

作为下一个分配节点。

lblc:基于地址的最小连接数调度,如果这一台设备仍然可以处理请求就将来自同一目的地址的请

求分配给同一台real server,否则分配给连接数最小的real server,作为下次分配请求的首选real

server。

lblcr:基于地址带重复最小连接数调度,目的地址会对应一个real server子集,为请求分配子集中

连接数最小real server,如果服务器中所有子集均已满载,则从集群中选择一个连接数较小服务

器,将它加入到这个子集并分配连接,一定时间内不干预就会将子集中负载最大的节点从子集中移

除。

SED:最短期望的延迟算法,基于wlc算法,将连接交给wlc结果最小的real server。假如A、B、C

分别权重为1、2、3,连接数分别是1、2、3,使用sed算法后运算式如下:A(1+1)/1、B(1+2)/2、

C(1+3)/3,就会交给C服务器。

NQ:最少队列调度,如果有台real server的连接数=0就直接分配过去,此时不想需要进行SED运

算,如果不处于空闲状态需要进行SED的运算。

 2.haproxy/nginx模式

如图示,大体与LVS差不多,但是haproxy/nginx模式下apache/nginx/图片服务器处理好的结果需要经过请求的原路返回给用户 

dcf3586bcf574698b270e946213b3415.png

 四.常用集群软硬件列举

1.企业常用集群软件

LVS,keepalived,haproxy,nginx,apache,heartbeat

2.企业常用集群硬件

F5,Netscaler,Radware

 

 

 

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

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

相关文章

什么是单例模式

什么是单例模式 文章目录 什么是单例模式1. 单例(单个的实例)2. 单例模式应用实例3. 饿汉式 VS 懒汉式 1. 单例(单个的实例) 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一…

Windows系统修改域名DNS指向两种方式

一、直接打开对应文件进行修改 1、进入hosts文件目录:C:\Windows\System32\drivers\etc 2、右键打开HOSTS文件进行编辑,将需要对应的域名和IP地址进行配置 编写完成后 Ctrl s 进行保存即可。 二、使用DOS命令进行修改 1、按住键盘win键 r 打开命令…

基于MOEA/D求解电力系统中环境经济调度问题(Matlab代码实现)

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

操作符详解下(非常详细)

这里写目录标题 下标访问[ ]、函数调用()[ ]下标引用操作符函数调用操作符 操作符的属性:优先级、结合性优先级结合性 表达式求值整型提升整型提升的意义如何进行整体提升 算术转换问题表达式解析表达式1表达式2表达式3表达式4表达式5 总结 下标访问[ ]、函数调用()…

TiDB 多集群告警监控-中章-融合多集群 Grafana

作者: longzhuquan 原文来源: https://tidb.net/blog/ac730b0f 背景 随着公司XC改造步伐的前进,越来越多的业务选择 TiDB,由于各个业务之间需要物理隔离,避免不了的 TiDB 集群数量越来越多。虽然每套 TiDB 集群均有…

excel逻辑函数篇2

1、IF(logical_test,[value_if_true],[value_if_false]):判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值 if(条件,条件成立返回的值,条件不成立返回的值) 2、IFS(logical_test1,value_if_true1,…):检查是否…

【深度学习 | 数据可视化】 视觉展示分类边界: Perceptron模型可视化iris数据集的决策边界

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

基于Three.js的WebXR渲染入门

1、Three.js 渲染管线快速概览 我不会花太多时间讨论 Three.JS 渲染管道的工作原理,因为它在互联网上有详细记录(例如,此链接)。 我将在下图中列出基础知识,以便更容易理解各个部分的去向。 2、WebXR 设备 API 入门 在我们深入了解 WebXR API 本身之前,您应该知道 WebX…

AutoSAR系列讲解(深入篇)13.7-Mcal Adc配置(上)

目录 一、AdcGeneral 二、AdcSafety 三、AdcConfigSet 在之前的章节中,咱们在Port的配置中讲解了工具的初步使用与一些技巧;在Dio的配置中讲解了生成的代码的内容;在mcu的配置里讲解了外部一些 第三方简便工具的使用。这一次咱们配合ADC模块,就详细的讲讲每个配置项的作…

STM32F407使用Helix库软解MP3并通过DAC输出,最精简的STM32+SD卡实现MP3播放器

只用STM32单片机SD卡耳机插座,实现播放MP3播放器! 看过很多STM32软解MP3的方案,即不通过类似VS1053之类的解码器芯片,直接用STM32和软件库解码MP3文件,通常使用了labmad或者Helix解码库实现,Helix相对labm…

Kubernetes网络模型

Kubernetes 用来在集群上运行分布式系统。分布式系统的本质使得网络组件在 Kubernetes 中是至关重要也不可或缺的。理解 Kubernetes 的网络模型可以帮助你更好的在 Kubernetes 上运行、监控、诊断你的应用程序。 网络是一个很宽泛的领域,其中有许多成熟的技术。对于…

学习总结(TAT)

项目写完了,来写一个总的总结啦: 1.后期错误 Connection,Statement,Prestatement,ResultSet都要记得关闭接口;(一定要按顺序关闭); 在写群聊的时候写数据库名的时候不要…

Spring项目使用Redis限制用户登录失败的次数以及暂时锁定用户登录权限

文章目录 背景环境代码实现0. 项目结构图(供参考)1. 数据库中的表(供参考)2. 依赖(pom.xml)3. 配置文件(application.yml)4. 配置文件(application-dev.yml)5…

Windows10上VS2022单步调试FFmpeg 4.2源码

之前在 https://blog.csdn.net/fengbingchun/article/details/103735560 介绍过通过VS2017单步调试FFmpeg源码的方法,这里在Windows10上通过VS2022单步调试FFmpeg 4.2的方法:基于GitHub上ShiftMediaProject/FFmpeg项目,下面对编译过程进行说明…

.netcore grpc身份验证和授权

一、鉴权和授权(grpc专栏结束后会开启鉴权授权专栏欢迎大家关注) 权限认证这里使用IdentityServer4配合JWT进行认证通过AddAuthentication和AddAuthorization方法进行鉴权授权注入;通过UseAuthentication和UseAuthorization启用鉴权授权增加…

Vulnhub系列靶机 Hackadmeic.RTB1

系列:Hackademic(此系列共2台) 难度:初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容,点击target 点击…

pytorch 42 C#使用onnxruntime部署内置nms的yolov8模型

在进行目标检测部署时,通常需要自行编码实现对模型预测结果的解码及与预测结果的nms操作。所幸现在的各种部署框架对算子的支持更为灵活,可以在模型内实现预测结果的解码,但仍然需要自行编码实现对预测结果的nms操作。其实在onnx opset===11版本以后,其已支持将nms操作嵌入…

嵌入式Linux开发实操(八):UART串口开发

串口可以说是非常好用的一个接口,它同USB、CAN、I2C、SPI等接口一样,为SOC/MCU构建了丰富的接口功能。那么在嵌入式linux中又是如何搭建和使用UART接口的呢? 一、Console接口即ttyS0 ttyS0通常做为u-boot(bootloader的一种,像是Windows的BIOS),它需要一个交互界面,一般…

AutoSAR配置与实践(基础篇)3.3 BSW的通信功能

传送门 -> AUTOSAR配置与实践总目录 AutoSAR配置与实践(基础篇)3.3 BSW的通信功能 一、收发过程概览1.1 发送过程概览1.2 接收过程概览 二、BSW的通信功能模块组成三、收发过程解析3.1 发送过程3.2 发送后的结果确认3.3 接收过程 一、收发过程概览 1…

「快学Docker」探索Docker的优势和多样化用途

「快学Docker」探索Docker的优势和多样化用途 Docker的优势Docker的多样化用途总结 Docker的优势 环境一致性:传统软件开发和部署中,环境配置常常是一个棘手的问题,不同环境之间可能存在差异,导致问题难以定位和解决。Docker通过…