Linux——keepalived负载均衡

  1. 如何解决网站的高并发访问?    高并发: 响应缓慢   服务卡顿  服务器宕机
    1. 思路: 找性能瓶颈  定位单点    (监控工具)
    2. 解决方案:  隔离  扩展
      • 动静分离
      • 拆分数据库
      • 缓存
      • 队列
      • 负载均衡
      • 逻辑隔离   // 虚拟化技术
        1. 硬件虚拟化 //VMware EXSI Ovirt
        2. 指令集虚拟化
        3. 运行库虚拟化 // 容器技术    容器编排工具  K8S
  2. 网络资源的高并发
    1. web服务器的选择
      • apache + 补充模块   =  用来运行web应用的容器
        1. php 程序可以直接被apache运行
        2. apache 的事务处理模型虽然经过迭代,相对从前在面对高并发业务场景下有一定的改进,但是处理能力依旧不能满足当前的需求
          1. perfork
          2. event // 相对高效的处理模型
          3. work

      • nginx // 反向代理
        1. php web应用程序在结合nginx 使用的情况下,php的请求通过nginx 反向代理交给php-fpm 等专门运行php程序的服务
        2. epoll 事件处理模型
          1. 技术前提,linux内核支持异步非阻塞事件处理   // 非阻塞相对于阻塞,系统运行效率更高
          2. io多路复用  
    • 负载均衡和应用网关
      • 负载均衡 架构设计
      • 应用网关  一开始主要由开发人员维护并设置对应的路由规则
        1. 将完整的网站功能拆分到不同的集群中     (微服务)
          1. 应用网关 (某种形式的负载均衡// 典型的七层负载均衡)
          2. 服务注册
    • 负载均衡     // 使用多个服务器响应客户端请求,同时还需要保证每一个服务器的工作负载较为均匀
      • 软件负载均衡 // 相对廉价,且维护成本低
        1. 软件层负载均衡典型软件  lvs    nginx   haproxy
        2. 保证负载均衡的稳定 引入keepalived  实现服务高可用
        3. pphc 这本书,从这一步开始进行的优化,就是从网络架构上进行的优化
          1. ospf+ecmp  实现不丢包和链路高可用
          2. 增加VIP对应的网卡数量,实现流量处理能力增强
          3. 设置两个入口网关
          4. 为每一个lvs节点增加一个新的VIP 进一步极高LVS的流量处理能力

      • 硬件负载均衡 // 处理效率高效 相较软件负载均衡 面对高并发 性能表现更好 价格昂贵
        1. 四层的负载均衡
          1. 维护NAT表 和 两个五元组
          2. 对IP报文进行目标地址转换

keepalived 实验架构

keepalived 如何实现高可用?

基于vrrp协议实现高可用。

  1. 选举
    1. 使用VRRP协议启动的实例,在启动时将为其配置对应的优先级,优先级的值越高,优先级越高,而优先级最高的实例将成为主节点(获得VIP的分配)其他节点自动成为备份节点
    2. 主节点获得VIP
  2. 心跳线
    1. 选举完成,主节点将持续发送集群状态给剩余的vrrp实例,备份实例将持续收到来自主节点的vrrp状态报文,并比较状态报文与选举阶段形成的集群状态是否一致
  3. 故障转移
    1. 如果心跳线失效之后,主要是主节点down 停止发送状态报文,或者主节点因为某些原因将优先级调低;
    2. 从节点将重新进行选举,从vrrp实例集群中选举新的主节点,剩余的从节点继续作为备份节点
    3. VIP 将随着重新选举的过程而分配给新的主节点,所以VIP也叫作漂移IP

实验要求:

  1. 实现负载均衡器的高可用,提升负载均衡器在面对高并发时的稳定性

实验的延伸:

  1. 增加一个VRRP实例配置,设置两个漂移VIP ,提升面对高并发时架构带宽
  2. vip 一般对应每一个VRRP实例的网络接口,本次实验中将使用以太网接口实现配置,可以尝试将多个以太网卡接口配置链路聚合功能,进一步提升带宽

IP地址规划:

后端服务器将统一使用虚拟主机进行配置

192.168.110.33  (80-82)

负载均衡器: 192.168.110.11     192.168.110.22

vrr

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

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

相关文章

windows下用cmake编译腾讯云的对象存储COS的XML C++SDK

首先在腾讯云官网上下载sdk,网址及官方说明文档如下: 对象存储 快速入门-SDK 文档-文档中心-腾讯云 我下载解压之后的路径如下图: 下载完后就要编译了。 1.下载VS,我的开发环境是 visual studio 2019 2. 下载CMake&#xff…

RT-DETR改进策略:BackBone改进|Next-ViT主干赋能下的革命性改进

摘要 Next-ViT(下一代视觉Transformer)是专为解决传统ViT模型在工业部署中遇到的推理速度慢、计算复杂度高等问题而设计的。它巧妙地结合了高效的Next Convolution Block(NCB)和Next Transformer Block(NTB),通过创新的混合策略(NHS)堆叠这些模块,从而在各种视觉任务…

JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析

拼多多2面,还是模拟拼团,要求用户拼团成功后,提交订单支付金额。 之前我们在系列(8)《CountDownLatch核心原理》,实现过拼团场景。但是CountDownLatch里调用countDown()方法后,线程还是可以继续执行后面的代码&#xf…

2024年华为认证热门的5个方向

华为认证是ICT领域内广受认可的专业资格认证体系,它为不同层次的ICT专业人士提供了多样化的认证路径。华为认证体系主要分为三个等级:HCIA(华为认证ICT工程师)、HCIP(华为认证ICT高级工程师)、HCIE&#xf…

HTML/CSS/JS学习笔记 Day6(CSS--C3 背景样式)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day6 内容梳理:…

【永磁同步电机(PMSM)】 2. 数学模型

【永磁同步电机(PMSM)】 2. 数学模型 1. 模型假设和磁路电路分析1.1 模型假设1.2 磁路分析—磁链方程1.3 电路分析—电压方程1.4 机械分析—运动方程 2. 三相静止坐标系的数学模型2.1 电压方程2.2 磁链方程2.3 电磁转矩方程2.4 电机机械运动方程 3. 变换…

webpack4 target:“electron-renderer“ 打包加速配置

背景 昨天写得一篇Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题-CSDN博客文章浏览阅读754次,点赞19次,收藏11次。因为组员对于 Electron 打包过程存在比较迷糊的状态,且自己也没主动探索 Electron-vu…

Cypress初次安装启动常见问题

安装成功后会出现如图所示目录和文件 Cypress启动问题 进入node_modules下的.bin 目录,执行命令: cypress open 启动cypress,此时会有一个报错,如图 需要进入项目目录,编辑package.json文件中scripts配置 此时再次启动CMD,进入根…

揭开 Vue 3 中大量使用 ref 的隐藏危机

在 Vue 3 中,ref 是用来创建响应式的引用,它能够追踪和管理单一的变量或对象。当代码中大量使用 ref 时,虽然可以实现对各个状态或数据的精细控制,但也会带来一些问题和潜在影响。 1. 大量使用 ref 带来的问题 1、代码冗长与维护…

第10章 面向对象编程(高级部分)

第10章 面向对象编程(高级部分) 文章目录 第10章 面向对象编程(高级部分)10.1 类变量和类方法10.1.1 类变量-提出问题10.1.2 传统的方法来解决10.1.3 类变量快速入门10.1.4 类变量内存布局10.1.5 什么是类变量10.1.6 如何定义类变量10.1.8 类变量使用注意事项和细节讨论10.1.9 …

JavaScript - Document文档操作

1. 前言 ​​​​​​​ 编写网页时,我们需要时刻操作文档进而完成我们想要的效果。这就是通过文档对象模型实现,使用Document对象控制HTML以及样式信息的API 2. Document的树结构 在了解Document文档对象模型之前,我们先了解Dom的树结构 …

pg入门1——使用容器启动一个pg

1. 下载pg镜像 地址: https://hub.docker.com/r/bitnami/postgresql 下载镜像: docker pull bitnami/postgresql:16.3-alpine3.20 2. 运行镜像 docker run -e POSTGRES_PASSWORDAb123456! -d bitnami/postgresql:16.3-alpine3.20 3. 查看、进入容…

如何使用VMware安装Linux操作系统

使用VMware安装Linux操作系统。以Cont OS为例进行说明。 准备工作: 下载并安装VMware: 下载地址:https://support.broadcom.com/ 下载好VMware,就是吧下载好的VMware安装,只需要“下一步”就行,只是到路径…

惠海H6118 DC-DC 降压恒流芯片30V36v40V48V降12V9V24V36V 1.2A大电流 调光降压芯片IC舞台灯

H6118是一款连续电感电流导通模式的降压型LED恒流驱动器,用于驱动一个或多个LED灯串。H6118工作电压从4V到30V,提供可调的输出电流,最大输出电流可达到1.2A。 H6118内置功率开关管,采用高端电流检测电路,支持PWM模式调…

即时通讯框架MobileIMSDK的H5端开发快速入门

► 相关链接: ① MobileIMSDK-H5端的详细介绍② MobileIMSDK-H5端的开发手册new(* 精编PDF版) 一、技术准备 您是否已对Web端即时通讯技术有所了解? 1)新手入门贴:史上最全Web端即时通讯技术原理详解2&…

提前解锁 Vue 3.5 的新特性

Vue 3.5 是 Vue.js 新发布的版本,虽然没有引入重大变更,但带来了许多实用的增强功能、内部优化和性能改进。 1. 响应式系统优化 Vue 3.5 进一步优化了响应式系统的性能,并且减少内存占用。尤其在处理大型或深度嵌套的响应式数组时&#xff…

【论文阅读】Grounding Language with Visual Affordances over Unstructured Data

Abstract 最近的研究表明,大型语言模型(llms)可以应用于将自然语言应用于各种各样的机器人技能。然而,在实践中,学习多任务、语言条件机器人技能通常需要大规模的数据收集和频繁的人为干预来重置环境或帮助纠正当前的…

unix中如何查询和修改进程的资源限制

一、前言 一个进程在运行时,会用到各种资源,比如cpu的使用时间、内存空间、文件等等。那么,一个进程能够占用多少资源呢?cpu使用的时间有多长?进程空间有多大?能够创建多少个文件?这个就是本文…

【数据结构】设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数 组或结点完成。

编程题: 设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数 组或结点完成。 分析: 该算法通过维护三个指针(prev、curr 和 next)逐步遍历单链表,实现链表的逆转。在遍历过程中,curr 的 next 指针被更新为指向 prev,逐步反转指向。最终,头结点的 next 指针…

用户态缓存:高效数据交互与性能优化

目录 1. 用户态缓存区工作背景 1.1 为什么每条连接都需要读写缓存区 1.1.1 读缓存区(Read Buffer) 1.1.2 写缓存区(Write Buffer) 1.2 用户态缓存区的工作流程 1.3 用户态缓存区的重要性 2. UDP 和 TCP 的设计差异 2.1 UD…