当前位置: 首页 > news >正文

SLB 负载均衡

优质博文:IT-BLOG-CN

一、简介

SLB (Server Loader Balancer)将访问流量根据转发策略分发到后台多台服务器的流量分发控制服务,来实现多台服务器提供相同的业务服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。主要用于为使用HTTP协议的请求提供路由核负载均衡功能。

SLBGateWay的区别

SLBGateWay
核心功能是路由负载均衡核心功能是路由
转发目标是一组服务器转发目标是一个URL
基本不涉及任何业务逻辑内部包含一些业务逻辑:1)跨域请求处理;2)用户认证与授权;3)请求加密;4)请求协议转换
只做同协议请求转发

SLB软件负载均衡与F5硬件负载均衡的区别

SLBF5
扩展性支持删除核删除后端服务器,实现无缝伸缩,伸缩过程不用更换任何设备,对相关调用核访问者零影响。当目前硬件设备达到响应瓶颈时,需要重新购买更高性能设备重新安装,业务中断,步骤繁琐。
安全免费提供四层DDoS攻击保护,支持应用防火墙,实时抵御网络攻击。需要额外购买安全防护模块,部署困难,成本较高。

二、SLB组成

负载均衡SLB主要由3个基本概念组成:负载均衡器LoadBalancer,监听器Listener,后端服务器BackendServer
【1】负载均衡实例Server Loader Balancer instances:一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。
【2】监听器Listeners:监听器用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
【3】后端服务器Backend Servers:一组接收前端请求的ECS实例,ECS实例是真正提供服务访问的,后端服务器的数据要一致,对后端服务器的操作系统等配置没有要求,只要求它们的数据是一致的。

负载均衡中的概念/术语
【1】负载均衡服务Server Load Balancer:一种网络负载均衡服务,可以结合云服务提供的ECS服务为用户提供基于ECS实例的TCPUDPHTTP负载均衡服务;
【2】地域Region:代表资源所在并有效的地域,每个地域包含一组数据中心;
【3】可用区Zone:代表负载均衡所在的Zone;
【4】负载均衡实例Load Balancer:负载均衡实例可以理解为负载均衡服务的一个运行实例,用来接收流量并将其分配给后端服务器。用户要使用负载均衡服务,就必须先创建一个负载均衡实例,LoadBalancer是识别用户负载均衡实例的唯一标识;
【5】负载均衡服务监听Listener:负载均衡服务监听,包括监听端口,负载均衡策略和健康检查配置等;
【6】后端服务器BackendServer:接受负载均衡分发请求的一组云服务器,负载均衡服务将外部的访问请求按照用户设定的规则转发到这一组后端服务器上进行处理;
【7】服务地址Address:系统分配的服务地址,当前为IP地址。用户可以选择该服务地址是否对外公开,来分别创建公网和私网类型的负载均衡;

三、SLB原理

协议支持:负载均衡基础架构是采用集群部署,提供四层(TCP协议和UDP协议)和七层(HTTPHTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
【1】传输层:传输层用端口号区分不同连接,比如 连网站http:默认用TCP80端口;连网站https:443端口;ssh:22端口;
【2】应用层:http,https,ssh,ftp等协议属于应用层协议;

SLB架构:当前提供四层和七层的负载均衡服务。
【1】七层:采用Tengine实现负载均衡;只能选HTTPHTTPS
【2】四层:采用开源软件LVS (Linux Virtual Server) + keepalived的方式实现负载均衡。可以自定义端口;

如果是访问网站,选七层,httphttps都支持,配置简单
如果需要自定义端口,建议用四层,四层麻烦一些;七层只能选HTTPHTTPS协议

转发方式的工作原理
【1】轮询模式:会将外部和内部的访问请求依序分发给后端ECS进行处理;
【2】加权轮询模式:会将外部和内部的访问请求依序分发给后端ECS进行处理,权重越高,被分配的几率越达;
【3】最小连接数:访问请求分发给当前连接数最小的一台后端ECS进行处理;

会话保持:开启会话保持后,负载均衡会把来自同一个客户端的请求分配到同一台后端服务器上,提高访问效率
【1】四层TCP:同一IP地址的请求持续发往同一台后端服务器
【2】七层HTTP:相同cookie的请求发往同一台后端服务器

四、常见错误

【1】499 Client Close Request: 客户端超时;
【2】502 Bad GateWay:应用无可用服务器或服务器连接失败;
【3】504 GateWay TimeOut: 应用服务器响应过慢;
【4】NET:ERR_CERT_AUTHORITY_INVALID:未安装证书;
【5】相同URL随机404:未DR部署;

相关文章:

SLB 负载均衡

优质博文:IT-BLOG-CN 一、简介 SLB (Server Loader Balancer)将访问流量根据转发策略分发到后台多台服务器的流量分发控制服务,来实现多台服务器提供相同的业务服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。主要用于…...

多核调度预备知识

进程调度的本质 任务/进程切换 即:上下文切换,内核对处理器上执行的进程进行切换“上下文” 指:寄存器的值“上下文切换”指: 将寄存器的值保存到内存中(进程被剥夺处理器,停止执行)将另一组寄存器的值从内存中加载到…...

什么是Git?解释Git的分布式版本控制系统的优势?

1、什么是Git?解释Git的分布式版本控制系统的优势? Git是一个开源的分布式版本控制系统,用于跟踪和管理代码库的版本历史。它允许用户在本地计算机上跟踪和管理代码库的更改,并与其他人协作开发项目。Git的分布式特性意味着它不需…...

软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计

软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计 一、网络应用体系安全设计相关知识点二、摘要三、正文四、总结一、网络应用体系安全设计相关知识点 软考高级系统架构设计师:计算机网络...

qt 实现音视频的分贝检测系统

项目场景: 目前的产品经常播放m3u8流,有的视频声音正常,有的视频声音就偏低,即使放到最大音量声音也是比较小,所以就产生了某种需求,能否自动感知视频声音的大小,如果发现声音比较小的情况&…...

SSM框架和Spring Boot+Mybatis框架的性能比较?

SSM框架和Spring BootMybatis框架的性能比较,没有一个绝对的答案,因为它们的性能受到很多因素的影响,例如项目的规模、复杂度、需求、技术栈、团队水平、测试环境、测试方法等。因此,我们不能简单地说哪个框架的性能更好&#xff…...

6个月的测试,来面试居然要18K,我一问连8K都不值

2023年7月份我入职了深圳某家创业公司,刚入职还是很兴奋的,到公司一看我傻了,公司除了我一个自动化测试,公司的测试人员就只有2个开发3个前端1个测试还有2个UI,在粗略了解公司的业务后才发现是一个从零开始的项目&…...

优美而高效:解决服务器通信问题

题目背景 在这个问题中,我们面临着一幅服务器分布图。图中的每个单元格可能有服务器(标记为1)或者没有(标记为0)。我们的任务是找出能够与至少一台其他服务器进行通信的服务器数量。 算法思路 为了解决这个问题&…...

C++模板的模板参数(五)

1.模板的模板参数 在C中,模板的模板参数(Template Template Parameters)是一种特殊的模板参数,允许我们将另一个模板作为模板参数传递给一个模板。这种技术可以用于实现更灵活和通用的模板设计。 模板的模板参数使用两个 “temp…...

基于jeecg-boot的flowable流程加签功能实现

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 今天我…...

day-03 基于TCP的服务器端/客户端

一.理解TCP和UDP TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,用于在计算机网络中提供可靠的数据传输。 1.TCP: 连接导向:TCP是一种面向连接的…...

匿名对象和一般对象的区别

1.格式的不同 一般对象的格式: ​ Object obj new Object(); ​ 匿名对象的格式: ​ new Object(); 2.作为参数传递机制的不同 2.1先看看一般对象的使用机制 执行步骤: 1.首先程序进入main()函数,执行Object obj,…...

[MyBatis系列⑥]注解开发

🍃作者简介:准大三本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐MyBatis系列①:增删改查 ⭐MyBatis系列②:两种Dao开发方式 ⭐MyBatis系列③:动态SQL ⭐MyBatis系列④:核心…...

[ACL2023] Exploring Lottery Prompts for Pre-trained Language Models

Exploring Lottery Prompts for Pre-trained Language Models 文章链接 清深的工作,比较有意思的一篇。作者先给出假设,对于分类问题,在有限的语料空间内总能找到一个prompt让这个问题分类正确,作者称之为lottery prompt。为此&…...

【Python编程】将同一种图片分类到同一文件夹下,并且将其分类的路径信息写成txt文件进行保存

注:数据结构同上一篇博文类似 一、代码 import os import cv2 import shutilpath0os.getcwd()\\apple\\RGB path1os.getcwd()\\apple\\tof_confidence # path2os.getcwd()\\apple\\tof_depth # path3os.getcwd()\\apple\\tof_depthRGB # path4os.getcwd()\\apple\…...

单例模式的相关知识

饿汉模式 package Thread; class Singleton{private static Singleton instance new Singleton();public static Singleton getInstance(){return instance;}private Singleton(){} }public class demo1 {public static void main(String[] args) {Singleton S1 Singleton.ge…...

vue问题相关记录

1. vue的 nextTick的原理 首先vue实现响应式并不是数据发生变化后dom立即更新,而是按照一定的策略 异步执行dom更新的。 vue在修改数据后,试图不会立即进行更新,而是要等同一事件循环机制内所有数据变化完成之后,在统一更新 next…...

skywalking服务部署

一、前言 Apache SkyWalking 是一个开源的分布式跟踪、监控和诊断系统,旨在帮助用户监控和诊断分布式应用程序、微服务架构和云原生应用的性能和健康状况。它提供了可视化的分析工具,帮助开发人员和运维团队深入了解应用程序的性能、调用链和异常情况 …...

【uni-app】压缩图片并添加水印

总体思路 dom 结点 这里的 cvHeight 和 cvWidth 初始时要设置为你后续需要压缩后的最大宽高。假设我们在图片上传后图片最大为 350 * 350 <u-upload :fileList"baseInfoFormData.entrustFileList" afterRead"afterFileRead" multiple></u-uploa…...

《每天十分钟》-红宝书第4版-变量、作用域与内存

最近有点忙&#xff0c;好长时间没抄经了&#xff0c;今天继续&#xff0c;之前语言基础相对简单&#xff0c;跳过一部分操作符。 变量 js 的变量是特殊的松散类型&#xff0c;由于没有规则定义变量必须包含什么数据类型&#xff0c;变量的值和数据类型在脚本生命期内可以改变…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...