keepalive和haproxy

1、keepalive

1.1概念

调度器的高可用

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

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

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分

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

keepalive也可以使用nginx、haproxy

keepalive+nginx实现高可用

1.2如何监测vip的漂移?

用一个监控的脚本,来监控nginx1的状态,如果nginx1挂了,nginx1的keepalive会停掉,vip漂移到nginx2上

nginx+keepalive实现主备切换,实验步骤:

关闭防火墙,安装keepalive

 编写监控的脚本

vim check_nginx.sh

 /usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
then
  systemctl stop keepalived
fi

 重启keepalived,查看keepalived的状态

[root@nginx1 opt]# systemctl restart keepalived
[root@nginx1 opt]# systemctl status keepalived

 给脚本赋权

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

 打开keepalived的配置文件

[root@nginx1 keepalived]# vim keepalived.conf

 重启keepalived,查看状态

[root@nginx1 keepalived]# systemctl restart nginx
[root@nginx1 keepalived]# systemctl restart keepalived.service

 暂停nginx,查看keepalived状态

 将配置文件发送给nginx2

[root@nginx2 ~]# scp root@192.168.230.60:/etc/keepalived/keepalived.conf  /etc/keepalived

编辑配置文件

 [root@nginx2 ~]# scp root@192.168.230.60:/etc/keepalived/keepalived.conf  /etc/keepalived

 开启nginx1和keepalived

vip地址生成了

[root@nginx1 keepalived]# systemctl start nginx
[root@nginx1 keepalived]# systemctl start keepalived.service 

[root@nginx1 keepalived]# ip addr

 重启nginx2和keepalived,没有生成vip地址

 修改nginx1和2的访问页面

[root@nginx1 keepalived]# vim /usr/local/nginx/html/index.html

 

 

 访问vip地址,只能访问nginx1,不会轮询

 暂停nginx1,vip地址消失了,漂移到nginx2上,此时访问的是nginx2

 恢复nginx1,开始keepalived,vip从nginx2漂移到nginx1上,此时访问的是nginx1

2、脑裂

2.1概念

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

主和备同时都有vip地址

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

2.2原因

1、keepalive的配置文件问题

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

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

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

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

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

2.3解决方法

1、进入keepalive的配置文件,查看哪一步的配置出现问题

2、查看服务器之间的网络连接是否正常,如果网线老化了,更换新的网线

3、检查硬件比如网卡是否正常,ip地址是否配置正确或者与其他地址冲突了

4、关闭防火墙,查看iptables的策略,vrrp协议的报文能否正常发送

5、保证两台服务器的时间同步,设置时间同步协议

6、检查其他服务配置是否有问题

3、Haproxy负载均衡

nginx:四层转发,七层转发(走的是用户态)

lvs:四层转发,走的是内核态

Haproxy:四层转发,七层转发

3.1Haproxy的作用和使用场景

3.1.1场景

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

3.1.2工作原理

提供一个代理地址访问集群

3.2作用

1、进行四层和七层转发

2、支持https

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

4、支持主备切换(keepalive)

3.3特点

可靠性高,稳定性好

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

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

算法:rr wrr leastconn

3.4七层转发配置

安装test1的依赖环境

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

 

 将haproxy的安装包拖进来,解压

[root@localhost opt]# tar -xf haproxy-1.5.19.tar.gz 

 查看内核版本

[root@localhost haproxy-1.5.19]# uname -r
3.10.0-957.el7.x86_64

 make,target使用的版本要大于linux.2.60以上的版本

[root@localhost haproxy-1.5.19]# make TARGET=linux2628 ARCH=x86_64

安装

 [root@localhost haproxy-1.5.19]# make TARGET=linux2628 ARCH=x86_64

创建目录 

[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy

 复制haproxy.cfg

[root@localhost examples]# cp haproxy.cfg /etc/haproxy

 修改配置文件

[root@localhost haproxy]# vim haproxy.cfg

  1 # this config needs haproxy-1.1.28 or haproxy-1.2.1
  2 
  3 global
  4         log /dev/log    local0 info
  5         log /dev/log    local1 notice
  6         #log loghost    local0 info
  7         maxconn 4096
  8         #最大连接数,推荐10240
  9         #chroot /usr/share/haproxy
 10         uid 99
 11         gid 99
 12         daemon
 13         nbproc 6
 15         #debug
 18 defaults
 19 #这里是默认参数配置,包含了连接配置、监听配置以及代理配置
 20         log     global
 21         mode    http
 22         option  httplog
 23         option  dontlognull
 24         retries 3
 26         redispatch
 28         maxconn 2000    
 30         #contimeout     5000
 31         #clitimeout     50000
 40         #客户端超时时间
 41         timeout server 1m
 42         #服务端的超时时间
 43         timeout http-keep-alive 10s
 44         #默认长连接的超时时间
 39         timeout client 1m
 40         #客户端超时时间
 41         timeout server 1m
 42         #服务端的超时时间
 43         timeout http-keep-alive 10s
 44         #默认长连接的超时时间
 45         timeout check 10s
 46         #检查后端服务器的超时时间
 47 #转发请求的设置,既可以是四层也可以是七层
 48 #七层的配置
 49 listen  xy102 0.0.0.0:80
 50         option httpchk GET /index.html
 51 #设置转发请求的内容
 52         balance static-rr
 53 #轮询算法
 54         server  rs01 192.168.230.60:80 check inter 2000 fall 3 weight 2
 55         server  rs02 192.168.230.70:80 check inter 2000 fall 3 weight 3
 56 #server指定真实服务器,rs01自定义后台服务器名称,check inter 2000启动对后端服务器进行检查,间隔是2000毫秒。fall 3连续3次检测不到认为失败

 复制 haproxy.init,赋权

[root@localhost examples]# cp [root@localhost examples]# cp haproxy.init /etc/init.d/haproxy
[root@localhost examples]# chmod 777 /etc/init.d/haproxy

 添加到管理服务中

[root@localhost examples]# chkconfig --add /etc/init.d/haproxy

 建立软连接

[root@localhost examples]# ln -s /usr/local/sbin/haproxy /usr/sbin/

 关闭防火墙,重启haproxy,访问成功实现轮询

3.5四层转发配置

配置文件haproxy.cfg

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

 重启,访问成功

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

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

相关文章

java通过poi-tl导出word实战详细步骤

文章目录 与其他模版引擎对比1.引入maven依赖包2.新建Word文档exportWprd.docx模版3.编写导出word接口代码4.导出成果 poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让…

图论·Day01

P3371 P4779 P3371 【模板】单源最短路径(弱化版) 注意的点: 边有重复,选择最小边!对于SPFA算法容易出现重大BUG,没有负权值的边时不要使用!!! 70分代码 朴素板dijsk…

100 个网络基础知识普及,看完成半个网络高手!

1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层&#xff0…

医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?

尽管漏洞扫描、模糊测试和渗透测试在评估系统安全性方面是非常重要和有效的工具,但即使这些测试没有发现任何问题,也不能完全保证您的医疗器械是绝对安全的。这是因为安全性的评估是一个多维度、复杂且持续的过程,涉及多个方面和因素。以下是…

uniapp实现table排序

根据后端接口传来的数字大小对列表进行升序/降序展示 效果图,价格由高到低降序 价格由低到高 升序 js 降序升序代码如下 export default {data() {return {MtList:[]}},onLoad() {this.MtypeName();//加载列表方法},methods: {MtypeName(){//列表方法this.$api.…

办公技巧:如何编辑带有工作表保护的Excel文件?

在日常工作中,我们经常会遇到带有工作表保护的Excel文件,这些文件虽然可以被打开查看,但无法直接编辑或修改其中的数据。然而,在某些情况下,我们可能需要编辑这些受保护的工作表以满足工作需求。本文将介绍几种方法来编…

【Linux】Linux操作系统

Linux基本指令 os概念与定位 本节内容: Linux操作系统讲解 os概念与定位 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序。总的来讲,操作系统是一款做软硬件管理的软件。 了解操作…

FastGPT+OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…

配置光源——笔记

一、灯光的类型 (一)Directional Light(定向光) 1、只改变方向变化,不记录位置变化 2、相当于太阳光 3、室外一般使用 (二)Spot 聚光灯:昏暗(凌晨或傍晚),有一个光斑…

科普文:spring boot中常用的接口、工具栏、注解整理

1.springboot 常用接口 1.1 Aware接口 Spring IOC容器中 Bean是感知不到容器的存在,Aware(意识到的)接口就是帮助Bean感知到IOC容器的存在,即获取当前Bean对应的Spring的一些组件,如当前Bean对应的ApplicationContext等。 1.1.1 Applicati…

SSM学习6:Spring事务

简介 事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 public interface PlatformTransactionManager{void commit(TransactionStatus status) throws TransactionStatus ;vo…

数据分析:小红书户外风潮起,内容种草新密码

导语 随着巴黎奥运会临近,小红书顺应热点推出《大家运动会》等S级IP,让户外运动与社区更好地有机融合,为品牌带来更广泛的市场曝光和用户参与度。品牌如何借势热点,完成新一轮的增长呢? S级IP《大家运动会》 千瓜数…

python如何查看类的函数

Python非常方便,它不需要用户查询文档,只需掌握如下两个帮助函数,即可查看Python中的所有函数(方法)以及它们的用法和功能: dir():列出指定类或模块包含的全部内容(包括函数、方法、…

一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目

大家好,今天给大家分享一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目Wails。 Wails是一个允许开发者使用Go和Web技术编写桌面应用程序的项目。 它被设计为Go的快速且轻量的Electron替代品,旨在提供一个平台,让开发者可以利用Go…

springcloud使用微服务的搭建

微服务的搭建 1.配置对应信息 Springboot 、springcloud、springcloud alibaba对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 2.pom.xml的配置 2.1 总项目pom.xml引入依赖 <parent><groupId>org.sprin…

WindowsMac共享文件夹设置

共享文件夹设置 共享文件夹设置Windows系统设置步骤一&#xff1a;设置共享文件夹步骤二: 访问共享文件夹 Mac系统中设置共享文件夹步骤一&#xff1a;设置共享文件夹步骤二&#xff1a;访问共享文件夹 小贴士结论 共享文件夹设置 有时需要在多台电脑之间共享文件夹&#xff0…

美创科技如何助力高校数据安全体系化升级,标杆实践看这里!

在高校如火如荼的数字化转型建设中&#xff0c;平衡合规与发展的天平&#xff0c;强化数据安全保障&#xff0c;是不可忽视的重要工作。 关于如何有效开展&#xff0c;美创与多所国内一流高校深入实践&#xff0c;本案例作为美创护航高校数据安全的又一典型项目&#xff0c;覆盖…

F4搜索帮助和按条件写sql

1.写SQL * -----增加业务员名字字段------SELECTA~VBELN,C~NAME1_TEXTFROM VBAK AS AINNER JOIN VBPA AS B ON A~VBELN B~VBELNINNER JOIN BUT000 AS C ON B~KUNNR C~PARTNERWHEREB~PARVW Z1AND B~POSNR * AND C~NAME1_TEXT IN S_NAMEINTO TABLE GT_NAME1 .SELECTA~VBE…

汽车免拆诊断案例 | 奥迪 Q7 e-tron无法通过插电式充电器充电

故障现象 车主反映&#xff0c;车辆无法使用自带的插电式充电器充电。&#xff08;这种充电方法是“Mode 2充电”&#xff0c;3针插头&#xff0c;10 A&#xff0c;2.2 kW&#xff09; 接车后验证故障&#xff0c;将Type 2充电插头连接到车辆时&#xff0c;充电口锁定销循环三…

【MySQL】8.复合查询

复合查询 一.基本查询回顾(新增子查询)二.多表查询三.自连接四.子查询1.单列单行子查询2.单列多行子查询——三个关键字3.多列子查询4.在 from 子句中使用子查询 五.合并查询六.总结 一.基本查询回顾(新增子查询) //1.查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还…