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…

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

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

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

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

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…

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

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

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

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

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

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

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

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

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

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

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

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

【零基础】学JS之APIS第四天

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

喰星云·数字化餐饮服务系统 多处 SQL注入漏洞复现

0x01 产品简介 喰星云数字化餐饮服务系统是一款专为餐饮企业设计的综合性管理软件,旨在通过信息化手段提升餐饮企业的运营效率、降低运营成本,并实现数据驱动的决策管理。该系统包括供应链管理、财务管理、巡店管理、人力资源管理等多个模块,可全面覆盖餐饮企业的日常运营需…

Zynq7000系列FPGA中的DDR内存控制器

DDR内存控制器是一个高度集成的组件,支持多种DDR内存类型(DDR2、DDR3、DDR3L、LPDDR2),并通过精心设计的架构来优化内存访问效率。 DDR内存控制器架构 AXI内存端口接口(DDRI):该部分负责处理与…

雷赛运动控制卡编程(2)限位设定与回原方式、脉冲模式设置

一、限位开关及急停开关的设置 限位开关的设置 //设置限位开关// dmc_set_el_modeushort _cardNo0;ushort _axisNo 0;ushort _enable 1; // 正负限位使能 ushort _elLogic 0; // 正负限位 低电平 有效ushort _model 0;// 正负限位停止方式为立即停止LTDMC.dmc_set_el_m…

构建实用的NLP应用程序:重塑人类与计算机的协同工作方式

文章目录 一、NLP技术的核心价值二、构建实用NLP应用程序的关键步骤三、NLP应用程序在协同工作中的创新应用《赠ChatGPT中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代,自然语言处理(NLP&#xff0…

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况,请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据,最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

Transformer模型:Postion Embedding实现

前言 这是对上一篇WordEmbedding的续篇PositionEmbedding。 视频链接:19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 上一篇链接:Transformer模型:WordEmbedding实现-CSDN博客 正文 先回顾一下原论文中对Posit…

[Windows] 号称最快免费小巧的远程桌面 AnyDesk v8.0.11单文件版

描述 对于经常在互联网上进行操作的学生,白领等! 一款好用的软件总是能得心应手,事半功倍。 今天给大家带了一款高科技软件 虽然 QQ 拥有远程协助功能,但很多时候连接并不够流畅,而且被控电脑那方也必须要有人操作才行…