lvs-dr模式+keepalived
一,keepalived概述
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
二,Keepalived体系主要模块及其作用
core:是keepalived的核心,负责主进程的启动,维护及全局配置文件的加载和解析。
vrrp:用来实现vrrp协议。
Vrrp通信原理:
Vrrp:虚拟路由冗余协议,作用是解决静态路由的单点故障。
Vrrp通过选举机制来将路由交给某台vrrp路由器处理。
Vrrp用多播的方式(多播地址224.0.0.18)实现高可用之间的通信,工作时主节点法宝,备节点接包,当备节点接收不到主节点发的数据包的时候,就会接管主节点的资源,备节点可以有多个,根据优先级来进行选举,但一般的keepalived系统运维工作的时候会又多个荣誉路由。
Vrrp使用加密协议加密数据,但是keepalived官方目前还是推荐用明文的方式认证类型和密码。
check:负责健康检查,常见方式有端口检查及url检查。
三,Keepalived工作原理
Keepalive服务器之间通过vrrp进行通信,vrrp是通过竞选来通过主备,主优先级高于备,因此工作时主优先获得所有资源,备节点处于等待状态。当主挂了的时候,备节点会接管主节点的资源,就顶替主节点对外提供服务。在keepalived服务之间,只有作为主的服务器会一直发送vrrp广播包,告诉备正常工作,此时备不会去抢占主,当主不可用的时候,即备监听不到主发送的广播包时候,备就会启动相关服务去接管资源,保证业务的连续性,接管速度最快小于1s。
四:配置

1,配置负载均衡器(192.168.10.14,192.168.10.15)
安装lvs与keepalived
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs配置keeplived
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf在global_defs中修改以下:
smtp_server 127.0.0.1 #邮件服务指向本地
router_id LVS_01 #指定路由器名称,需主备不同
#vrrp_strict #注释掉,取消严格遵守vrrp协议功能在vrrp_instance VI_1中修改以下:
state MASTER #主为MASTER,备为BACKUP
interface ens33 #设置承载vip的物理接口
virtual_router_id 10 #指定虚拟路由id号,每个组保持一致
#nopreempt #设置为抢占模式,如果设置非抢占模式,两个节点state必须为bakcup,并加上配置 nopreempt
priority 100 #修改优先级,主比备大即可
advert_int 1 #通告间隔秒数
authentication { auth_type PASS #认证类型 auth_pass abc123 #认证密码}
virtual_ipaddress { 192.168.10.188 #设置集群vip地址}virtual_server 192.168.10.188 80 {delay_loop 6 #健康检查的间隔时间(秒)lb_algo rr #指定算法lb_kind DR #服务工作模式persistence_timeout 50 #连接保持时间protocol TCP #服务采用tcp连接指定第一个web节点的物理ip地址和虚拟地址
real_server 192.168.10.16 80 {weight 1 #设置权重TCP_CHECK {connect_port 80 #检查目标的端口connect_timeout 3 #连接超时nb_get_retry 3 #重试次数delay_before_retry 3 #重试间隔}
}指定第二个web节点的物理ip地址和虚拟地址
real_server 192.168.10.17 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}
}配置vip
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.188
NETMASK=255.255.255.255重启网卡
systemctl restart network
ifup ens33:0
systemctl start keepalived
ip addr添加ipvsadm规则并启动
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C
ipvsadm -A -t 192.168.10.188:80 -s rr
ipvsadm -a -t 192.168.10.188:80 -r 192.168.10.16:80 -g
ipvsadm -a -t 192.168.10.188:80 -r 192.168.10.17:80 -g
ipvsadm -ln调整proc参数,关闭linux内核重定向
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
2,配置节点服务器
yum -y install httpd
systemctl start httpd给网页写入内容(两台看着写)
echo 'this is web!' > /var/www/html/index.html设置vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.10.188
NETMASK=255.255.255.255启动网卡
systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.10.188 dev lo:0设置广播响应的参数
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
测试:访问虚拟地址
相关文章:
lvs-dr模式+keepalived
一,keepalived概述 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器&am…...
[C++]笔记-知识点总结
一.输入密码时候,隐藏密码 用函数getch(),头文件#include<conio.h>输入一个字符时候不会回显,getc会回显实现思路: 输入一个字符,由于不知道密码长度,所以设置为死循环,如果不是回车键,即将该字符添加到存放密码的数组里,顺便打印一个星号,如果输入的为回车键,由于getch…...
1.RabbitMQ介绍
一、MQ是什么?为什么使用它 MQ(Message Queue,简称MQ)被称为消息队列。 是一种用于在应用程序之间传递消息的通信方式。它是一种异步通信模式,允许不同的应用程序、服务或组件之间通过将消息放入队列中来进行通信。这…...
软考高级系统架构设计师系列论文七十三:论中间件在SIM卡应用开发中的作用
软考高级系统架构设计师系列论文七十三:论中间件在SIM卡应用开发中的作用 一、中间件相关知识点二、摘要三、正文四、总结一、中间件相关知识点 软考高级系统架构设计师:构件与中间件技术二、摘要 我曾于近期参与过一个基于SIM卡应用的开发项目,并在项目中担任系统分析的工作…...
【Java架构-包管理工具】-Maven进阶(二)
本文摘要 Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven进阶知识,包含坐标、依赖、仓库、生…...
『C语言入门』分支和循环语句
文章目录 引言一、什么是语句?1.1表达式语句1.2赋值语句1.3函数调用语句1.4复合语句1.5空语句1.6控制语句 二、分支语句2.1 if语句2.1.1基本语法2.1.2使用else语句2.1.3嵌套if语句2.1.4多层if-else语句 2.2 switch语句2.2.1基本语法2.2.2示例2.2.3穿透 三、循环语句…...
【给自己挖个坑】三维视频重建(NSR技术)-KIRI Engine
文章目录 以下是我和AI的对话通过手机拍摄物体的视频,再根据视频生成三维模型,这个可实现吗我想开发类似上面的手机应用程序,如何开发呢 看了以上回答,还是洗洗睡吧NSR技术的实现原理是什么呢有案例吗我是名Java工程师,…...
Chrome历史版本下载和Selenium驱动版本下载
Python自动化必备: Selenium驱动版本下载 http://chromedriver.storage.googleapis.com/index.html Chrome浏览器历史版本下载 https://www.slimjet.com/chrome/google-chrome-old-version.php...
联合注入步骤
使用场景: 有回显,可以看到某些字段的回显信息 像下面的有具体的回显信息 一、判断注入位点 在原始的id(参数)的输入后面添加额外的条件 如果and 11 有结果,and10没有结果输出, 就说明我们添加的额外条件…...
后端项目开发:整合redis缓存
因为各种场合比如门户和后台,需要不同的redis配置,我们在common包配置通用的reids配置。 1.新建service目录,建立RedisService服务接口,同时编写工具类实现该接口。 public interface RedisService {/*** 保存属性*/void set(Str…...
美国访问学者签证好办吗?
近年来,随着国际交流与合作的不断深入,许多人对于美国访问学者签证的办理情况产生了浓厚的兴趣。那么,美国访问学者签证到底好办吗?让知识人网小编带您一起了解一下。 首先,美国作为世界上的科研、教育和创新中心之一&…...
Linux之基础IO文件系统讲解
基础IO文件系统讲解 回顾C语言读写文件读文件操作写文件操作输出信息到显示器的方法stdin & stdout & stderr总结 系统文件IOIO接口介绍文件描述符fd文件描述符的分配规则C标准库文件操作函数简易模拟实现重定向dup2 系统调用在minishell中添加重定向功能 FILE文件系统…...
Django主要特点
Django 是一个开源的 Python Web 开发框架,它提供了一系列的工具和功能,帮助开发人员快速、高效地构建 Web 应用程序。 以下是 Django 的一些主要特点: 1. 强大的 ORM(对象关系映射): Django 提供了一个…...
element-ui中的el-table合并单元格
描述: 在写项目的时候有时候会经常遇到把行和列合并起来的情况,因为有些数据是重复渲染的,不合并行列会使表格看起来非常的混乱,如下: 而我们想要的数据是下面这种情况,将重复的行进行合并,使表…...
自组织地图 (SOM) — 介绍、解释和实现
自组织地图 (SOM) — 介绍、解释和实现 一、说明 什么是SOM(self orgnize map)自组织地图,是GNN类似的图神经网络的概念。因为神经网络实质上可以解释为二部图的权重,因此无论GNN还是SOM都有共同的神经网络…...
Arduino程序设计(四)按键消抖+按键计数
按键消抖按键计数 前言一、按键消抖二、按键计数1、示例代码2、按键计数实验 参考资料 前言 本文主要介绍两种按键控制LED实验:第一种是采用软件消抖的方法检测按键按下的效果;第二种是根据按键按下次数,四个LED灯呈现不同的流水灯效果。 一…...
Module not found: Error: Can‘t resolve ‘vue-pdf‘ in ‘xxx‘
使用命令npm run serve时vue项目报错: Module not found: Error: Cant resolve vue-pdf in xxx 解决方案: 运行命令: npm install vue-pdf --save --legacy-peer-deps 即可解决。 再次顺利执行npm run serve...
ELK之LogStash介绍及安装配置
一、logstash简介 集中、转换和存储数据 Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。 Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的…...
docker学习(1)
1、容器与虚拟机的对比: 虚拟机(virtual machine)就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统,比如在Windows10系统里面运行Linux系统CentOS7。 应用程序对此毫无感知,因为虚拟机看…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
