keepalive:

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 ]
thensystemctl 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.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
​
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_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.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
​
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_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
​
globallog /dev/log    local0 infolog /dev/log    local1 notice#log loghost    local0 infomaxconn 4096#最大连接数,推荐使用10240#chroot /usr/share/haproxyuid 99gid 99daemonnbproc 4#4相当于haproxy的并发线程数,设置的数量最好是cpu的2倍或者和cpu保持一致#debug#quiet
​
defaults
#这里是默认参数配置,连接配置,监听配置以及代理配置log     globalmode    httpoption  httplogoption  dontlognullretries 3#检查节点服务器3次,连续3次失败,就认为节点服务器不可用redispatch#服务器负载很高时,自动结束当前队列中处理比较久的连接maxconn 2000#最大连接数,这个数值可以和global中的一致,也可以比他小,但是不能超过他,一般设置成一致。#contimeout     5000#clitimeout     50000#srvtimeout     50000timeout 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:80option httpchk GET /index.htmlbalance        static-rrserver rs01 192.168.60.30:80 check inter 2000 fall 3 weight 2server 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.mzph.cn/news/871956.shtml

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

相关文章

企业网络运维-给华为交换机配置sftp,浏览交换机文件并下载上传

文章目录 需求实验开户stelnet权限已完成stelnet账号下的sftp配置使用xshell-sftp访问 需求 浏览交换机文件并下载上传 实验 开户stelnet权限 参考https://blog.csdn.net/xzzteach/article/details/140419150 已完成stelnet账号下的sftp配置 服务类型all包括stelnet和sf…

过滤器(Filter)和拦截器(Interceptor)的区别

过滤器(Filter)和拦截器(Interceptor)都是用于在请求处理过程中执行额外逻辑的机制,但它们在实现和使用上有一些重要的区别: 过滤器(Filter) 定义和用途: 过滤器主要用于…

强化学习编程实战-5 基于时间差分的方法

第4章中,当模型未知时,由于状态转移概率P未知,动态规划中值函数的评估方法不再适用,用蒙特卡洛的方法聘雇值函数。 在蒙特卡洛方法评估值函数时,需要采样一整条轨迹,即需要从初始状态s0到终止状态的整个序列…

[C++ 入门基础 - 函数重载]

在C编程中,函数重载(Function Overloading)是一种强大的特性,它允许我们定义多个同名函数,但这些函数具有不同的参数列表。通过函数重载,我们可以根据不同的参数类型或数量来实现类似但功能不同的函数&…

探索“搭旅万物皆可搭”小程序——构建旅行搭伴平台的创新实践

摘要 随着旅游市场的不断发展和个性化需求的日益增长,旅行搭伴平台逐渐成为连接志同道合旅者的桥梁。本文旨在介绍“搭旅万物皆可搭”小程序的设计理念、核心功能及其背后的技术实现,探讨如何通过算法优化、安全保障、社交互动等手段,打造一…

GUI界面开发之tkinter(一)

Tkinter是一个内置的Python库,用于创建图形用户界面(GUI)。它提供了一组工具和小部件,用于创建窗口、对话框、按钮、菜单和其他GUI元素。 在本篇文章中,主要介绍了窗口等知识点。 大家好!我是码银&#x1…

《昇思25天学习打卡营第22天|onereal》

文本解码原理--以MindNLP为例 回顾:自回归语言模型 根据前文预测下一个单词 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 𝑊_0:初始上下文单词序列𝑇: 时间步当生成EOS标签时,停止生成。 MindNLP/huggi…

人工智能时代的伦理挑战与隐私保护

随着人工智能技术的迅猛发展,我们不得不正视其带来的伦理挑战和隐私保护问题。人工智能的应用已经深入到社会的方方面面,从医疗健康到金融服务,从教育到娱乐,无所不在。然而,与其广泛应用相伴随的是数据隐私泄露、算法…

MySQL 时区问题:设置了 my.ini 并重启了服务,依旧是 0 时区

1、问题再现 在撰写 飞书 API 2-5 时,需要新建一些数据表,以便实施从数据库到多维表的数据同步。我建了2个测试数据表,连表查询之后,将时间戳转为时间格式返回,结果发现少了 8 小时。 具体逻辑抽象为以下&#xff0c…

【Vue3组件】封装全局路由切换loading效果

把大象装进冰箱需要几步 1.写一个全局loading的样式组件&#xff0c;我这里使用了LottieAnimation 实现更优雅的切换动画&#xff0c;详情可以参考主页上一篇文章 <template><div v-if"isLoading" class"loading-overlay"><LottieAnimatio…

S7-1200PLC 2轴直线插补(详细方案对比)

1、V90速度轴应用 速度轴V90PN总线伺服梯形加减速速度控制(标准报文1应用)_v90伺服加减速时间怎么调整-CSDN博客文章浏览阅读288次。SMART PLC斜坡函数SMART PLC斜坡函数功能块(梯形图代码)_RXXW_Dor的博客-CSDN博客斜坡函数Ramp的具体应用可以参看下面的文章链接:PID优化系…

【Linux/Vim】Vim使用教程及速查手册

目录 一.Vim介绍 1.Vim是什么 2.Vim的安装 (1)Vim默认安装的系统 (2)Vim的安装方法 (3)检查Vim是否安装成功 3.Vim,Vi,gvim的区别 4./.vimrc配置文件介绍及使用方法 (1).vimrc 的介绍 (2).vimrc 的使用方法 二.Vim使用方法 1.Vim的模式 (1)Vim一般命令模式常用操作…

【技术】JS的ES6有哪些知识点

1.let-const块级作用域的补充 const names["abc","cba","nba"];for(let i0;i<names.length;i){ //* 这个数组的元素有三个&#xff0c;所以会形成3个块级作用域console.log(names[i]); }以上for遍历内部的实现是以下这样的&#xff1a; 因…

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴&#xff0c;博主提供了源码、数据和一些查询语句&#xff0c;供大家学习和参考&#xff0c;代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具&#xff1a;navicat&#xff1b; 数据库&#xff1a;MySq…

数据结构之线性表的实现

顺序存储实现&#xff08;数组&#xff09; 顺序存储的线性表通常使用数组来实现。在数组中&#xff0c;元素在内存中是连续存放的&#xff0c;通过数组下标可以访问任意位置的元素。 链式存储实现&#xff08;链表&#xff09; 链式存储的线性表使用链表来实现。链表中的元…

C++ --> 类和对象(三)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 前面已经对类和对象有一定的了解&#xff0c;接下来再次深入的了解一下。 一、深入理解构造函数 构造函数体赋值&#xff1a; 虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能…

[笔记] SEW的振动分析工具DUV40A

1.便携式振动分析仪 DUV40A 文档编号&#xff1a;26871998/EN SEW是一家国际化的大型的机械设备供应商。产品线涵盖电机&#xff0c;减速机&#xff0c;变频器等全系列动力设备。DUV40A是他自己设计的一款振动分析工具。 我们先看一下它的软硬件参数&#xff1a; 内置两路传…

防火墙综合实验之NAT和智能选路

目录 前言&#xff1a; 一、实验题目 二、实验操作 需求一 需求二 需求三 需求四、需求五 需求六 需求七 ​编辑 需求八 需求九 需求十 需求十一 三、需求测试 前言&#xff1a; 本篇文章是延续上一篇文章&#xff0c;简单来说就是防火墙实验的完善和延续&#…

CV07_深度学习模块之间的缝合教学(2)--维度转换

教学&#xff08;1&#xff09;&#xff1a;链接 1.1 预备知识 问题&#xff1a;假如说我们使用的模型张量是三维的&#xff0c;但是我们要缝合的模块是四维的&#xff0c;应该怎么办&#xff1f; 方法&#xff1a;pytorch中常用的函数&#xff1a;(1)view函数&#xff08;2…

新华三H3CNE网络工程师认证—DHCP使用场景

网络服务与应用当中的技术有DHCP、Telnet和FTP。DHCP是计算机当中常用来获取地址的。比如日常使用中&#xff0c;计算机并没有接入IP&#xff0c;IP通过DHCP技术从上端服务去获取的。手动配置网络参数会出现多种问题。 文章目录 一、手动配置网络参数的问题1、参数多、理解难2、…