keepalive:

news2024/11/23 3:17:15

keepalive:

调度器的高可用

vip地址在主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip漂移到备服务器。

在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分。

keepalive是专门为lvs打造的,但是不是为lvs专门服务的。

keepalive也可以使用nginx,haproxy。

keepalive+nginx实现高可用

vrrp script check_nginx {
script "/opt/check_nginx.sh"
#调用脚本内容,检测nginx的状态
interval 5
#检测的间隔时间是5秒
}
操作:

1、关闭两台nginx的防火墙

[root@test3 ~]# systemctl stop firewalld
[root@test3 ~]# setenforce 0

2、下载keepalive配置文件

[root@test3 ~]# yum -y install keepalived

3、在主写一个监控nginx的脚本

[root@test3 opt]# vim check_nginx.sh 
​
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
then
 systemctl stop keepalived
fi

4、将脚本赋权

[root@test3 opt]# chmod 777 check_nginx.sh 

5、在主中更改keepalive配置文件

[root@test3 opt]# vim /etc/keepalived/keepalived.conf
​
! Configuration File for keepalived
​
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_01
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_iptables
}
   vrrp_script check_nginx {
        script "/opt/check_nginx.sh"
        interval 5
}
​
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.60.100
    }
     track_script {
        check_nginx
    }
}

6、将主的keepalive配置文件复制到备中

[root@test4 ~]# scp root@192.168.60.30:/etc/keepalived/keepalived.conf /etc/keepalived/

7、更改备的配置文件

[root@test4 ~]# vim /etc/keepalived/keepalived.conf 
​
! Configuration File for keepalived
​
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_02
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_iptables
}
   vrrp_script check_nginx {
        script "/opt/check_nginx.sh"
        interval 5
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.60.100
    }
     track_script {
        check_nginx
    }
}

面试题:

脑裂是什么

HA 高可用架构中的一个特殊现象,只要使用vip地址代理的冗余模式的高可用。都有可能出现脑裂的问题。

主和备同时都有vip地址

主和备无法确定各自的身份,同时出现了vip地址,两边起来了,但是两边都无法使用。

原因:

1、keepalive的配置文件问题

2、心跳线(网线)断了,老化

3、网卡出了问题(硬件),IP地址配置冲突。

4、防火墙的策略,iptables的策略,屏蔽了组播地址的广播。屏蔽了vrrp协议的报文

5、两台服务器的时间不同步也可能导致。

6、其他的服务配置对心跳线的检测造成了干扰。

怎么解决

1、 将keepalive的配置文件中错误配置更改

2、 更换新的网线

3、 Ip地址冲突,就更改其他的vip地址,如果是硬件问题,就更换新的网卡

4、 将防火墙策略中阻止通信的策略删除或在keepalive的配置文件中加一行vrrp_iptables

5、 将两台服务器的时间同步

6、 将其他服务配置更改

nginx lvs lvs+keepalive keepalive单独配置

web集群

Haproxy负载均衡:

nginx 四层转发,七层代理

lvs 四层转发 内核态 用户态

Haproxy 四层转发 七层代理

Haproxy的作用和使用场景:

1、场景 用于高并发的web场景,可以支持一万个以上的并发请求,高性能的tcp和http的负载均衡器。

工作原理:

提高一个代理地址,访问集群

2、作用:

1)进行四层和七层转发

2)支持https

3)haproxy本身不自带缓存功能。请求当中添加cookie,使用缓存

4)支持主备切换(keepalive)

3、特点:

可靠性高,稳定性好

可以同时维护40000~50000个并发,单位时间内可以处理的最大请求数20000个(3秒)

支持负载均衡算法,虽然不带缓存,但是可以支持会话保持。

rr

wrr

lestconn

make TARGET=linux2628 ARCH=x86 64

target使用的版本要大于linux2.60以上的办呢

3.10

2628

2.62.8 linux内核版本

操作:

1、安装依赖环境

[root@test8 opt]# yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

2、将压缩包拖到opt目录下

[root@test8 ~]# cd /opt/
[root@test8 opt]# rz -E
rz waiting to receive.

3、解压haproxy压缩包并执行

[root@test8 opt]# tar -xf haproxy-1.5.19.tar.gz 
[root@test8 opt]# cd haproxy-1.5.19/
[root@test8 haproxy-1.5.19]# uname -r
3.10.0-957.el7.x86_64
[root@test8 haproxy-1.5.19]# make TARGET=linux2628 ARCH=x86_64

4、执行一下

[root@test8 haproxy-1.5.19]# make install

5、创建一个目录将主配置文件复制到创建的目录下

[root@test8 haproxy-1.5.19]# mkdir /etc/haproxy
[root@test8 haproxy-1.5.19]# cd examples/
[root@test8 examples]# cp haproxy.
haproxy.cfg   haproxy.init  haproxy.spec  haproxy.vim
[root@test8 examples]# cp haproxy.cfg /etc/haproxy/

6、更改主配置文件

[root@test8 examples]# cp haproxy.cfg /etc/haproxy/
[root@test8 examples]# cd /etc/haproxy/
[root@test8 haproxy]# vim haproxy.cfg 
​
# this config needs haproxy-1.1.28 or haproxy-1.2.1
​
global
        log /dev/log    local0 info
        log /dev/log    local1 notice
        #log loghost    local0 info
        maxconn 4096
        #最大连接数,推荐使用10240
        #chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        nbproc 4
        #4相当于haproxy的并发线程数,设置的数量最好是cpu的2倍或者和cpu保持一致
        #debug
        #quiet
​
defaults
#这里是默认参数配置,连接配置,监听配置以及代理配置
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        #检查节点服务器3次,连续3次失败,就认为节点服务器不可用
        redispatch
        #服务器负载很高时,自动结束当前队列中处理比较久的连接
        maxconn 2000
        #最大连接数,这个数值可以和global中的一致,也可以比他小,但是不能超过他,一般设置成一致。
        #contimeout     5000
        #clitimeout     50000
        #srvtimeout     50000
        timeout http-request 10s
        #http请求的默认超时时间
        timeout queue 1m
        #在队列当中请求的超时时间
        timeout connect 10s
        #连接超时时间
        timeout client 1m
        #客户端的超时时间
        timeout server 1m
        #服务端的超时时间
        timeout http-keep-alive 10s
        #默认长连接的超时时间
        timeout check 10s
        #检查后端服务器的超时时间. 
​
#转发请求的设置,既可以是四层也可以是七层
#7层的配置:
listen xy102 0.0.0.0:80
        option httpchk GET /index.html
        balance        static-rr
        server rs01 192.168.60.30:80 check inter 2000 fall 3 weight 2
        server rs02 192.168.60.40:80 check inter 2000 fall 3 weight 3
#server 指定真实服务器  rs01 自定后台服务器名称 check inter 2000 启动对后端服务器进行检查,检查的间隔时间2000毫秒。  fall 3  连续三次见不到任务失败。

7、将haproxy.init配置文件复制并赋权和做软连接

[root@test8 haproxy-1.5.19]# cd /opt/haproxy-1.5.19/examples/
[root@test8 examples]# cp haproxy.init /etc/init.d/haproxy
[root@test8 examples]# chmod 777 /etc/init.d/haproxy 
[root@test8 examples]# chkconfig --add /etc/init.d/haproxy 
[root@test8 examples]# ln -s /usr/local/sbin/haproxy /usr/bin/
​

8、重启haproxy服务

[root@test8 init.d]# systemctl restart haproxy

9、四层代理

#四层转发:
frontend test
bind *:80
mode tcp
default_backend test
​
backend test
mode tcp
balance roundrobin
server server1 192.168.60.30:80 check inter 2000 fall 3 weight 2
server server2 192.168.60.40:80 check inter 2000 fall 3 weight 2

10、结果

[root@test8 haproxy]# curl 192.168.60.80
this is test3
[root@test8 haproxy]# curl 192.168.60.80
this is test4
[root@test8 haproxy]# curl 192.168.60.80
this is test4
[root@test8 haproxy]# curl 192.168.60.80
this is test3
[root@test8 haproxy]# curl 192.168.60.80
this is test4

keepalive+haproxy:

vip 192.168.60.100

rs1

rs2

nginx+keepalive:

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

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

相关文章

音视频开发—使用FFmpeg将YUV文件编码成H264裸流文件 C语言实现

文章目录 1.准备工作2.压缩编码工作流程3.详细步骤1. 初始化日志和参数检查2. 输入/输出文件的打开3. 查找和初始化编码器4. 打开编码器5. 帧内存的分配和初始化6. 设置转换上下文(SWS)7. 读取和转换数据8. 编码过程9. 资源清理 4.完整示例代码 1.准备工…

AI大模型探索之旅:深潜大语言模型的训练秘境

在人工智能的浩瀚星空中,大语言模型无疑是最耀眼的星辰之一,它们以无与伦比的语言理解与生成能力,引领着智能交互的新纪元。本文将带您踏上一场探索之旅,深入大语言模型的训练秘境,揭开其背后复杂而精妙的全景画卷。 …

Qt Quick qml自定义控件:qml实现电池控件

qml入门进阶专栏地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介绍如何使用qml来实现电池控件,效果图如下: 下面给出实现代码 Battery.qml /*电池组件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…

Maven学习笔记——如何在pom.xml中通过坐标为项目导入jar包

注意:我们只导入了一个jar包坐标,但右边项目中确多出来了好几个jar包,这是因为我们导入的该jar包所依赖其他jar包,maven自动帮我们导入了进来

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图: 地图展示,设备点聚合,设备站点,绘制点和区域等功能。 我只针对我涉及到的技术做一下总结,希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1(静态变量方式) 3.2.2 懒汉式-方式1(线程不安全) 3.…

【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会

【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会 【创作不易,求点赞关注收藏】 文章目录 【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会一、版本情况介绍二、安装cuda1、到官网找到对应版本进行安装2、对…

【openwrt】Openwrt系统新增普通用户指南

文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户,所有的服务都是以 root权限运行的,包括 WebUI也是通过root账户访问的,…

使用EndNote添加参考文献,如何区分中英文文献的et al和等?

一、背景 我们在用EndNote添加参考文献时,如遇到超过3个作者,需列出前三位作者,其余用“et al”代替。 但中文文献用“et al”显示不合适,如下图所示,需要用“等”代替。 二、中文参考文献大于3个作者,用等…

5G数字化转型redcap助您“轻”装上阵

RedCap(Reduced Capability)技术,也称为NR-Light,是针对5G网络的一种轻量化技术规范,旨在为具有较低性能要求的设备提供5G连接。 RedCap技术特点 低成本 降低芯片组和设备成本:RedCap通过减少终端带宽、收…

【Playwright+Python】系列 Pytest 插件在Playwright中的使用

一、命令行使用详解 使用 Pytest 插件在Playwright 中来编写端到端的测试。 1、命令行执行测试 pytest --browser webkit --headed 2、使用 pytest.ini 文件配置 内容如下: [pytest] # Run firefox with UIaddopts --headed --browser firefox效果&#xff1…

STM32入门开发操作记录(三)——按键控制LED

目录 一、模块化二、LED交替闪烁1. LED.c2. LED.h3. 主函数 三、按键控制LED1. Key.c2. Key.h3. LED.c4. LED.h5. 主函数 一、模块化 前篇介绍了如何向项目添加模块,本篇将进一步介绍模块的编写与封装。随着模块的增加,需要用到Manage Project Items&…

多终端文件互传

LocalSend - 下载下载LocalSend适用于Windows、macOS、Linux、Android和iOS。https://localsend.org/zh-CN/download

C语言 ——— 输入两个正整数,求出最小公倍数

目录 何为最小公倍数 题目要求 代码实现 方法一:暴力求解法(不推荐) 方法二:递乘试摸法(推荐) 何为最小公倍数 最小公倍数是指两个或者多个正整数(除了0以外)的最小的公共倍数…

浅谈RLHF---人类反馈强化学习

浅谈RLHF(人类反馈强化学习) RLHF(Reinforcement Learning fromHuman Feedback)人类反馈强化学习 RLHF是[Reinforcement Learning from Human Feedback的缩写,即从人类反馈中进行强化学习。这是一种结合了机器学习中…

Android Toast

Toast Toast是Android常用的简单控件,主要用来进行简短的信息提示,如图1所示。 图1 Toast效果图 Toast的基本用法很简单,不需要设置layout,只需要在程序中调用即可。Toast调用makeText()方法设置需要显示的界面、显示的内容、显…

简洁实用的原创度检测工具AntiPlagiarism NET 4.132

AntiPlagiarism NET是一个适用于Windows的程序,它允许您检查文本的唯一性和从不同Internet来源借用的存在。使用AntiPlagiarism NET,您可以: 将程序用于不同的目的该程序适用于学生、教师、记者、文案作者和其他需要检查其文本或其他作者文本…

SpringBoot实战:多表联查

1. 保存和更新公寓信息 请求数据的结构 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓标签i…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游乐园门票 (200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 最新华为O…

4000厂商默认账号密码、默认登录凭证汇总.pdf

获取方式&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1F8ho42HTQhebKURWWVW1BQ?pwdy2u5 提取码&#xff1a;y2u5