最近在做服务器的高可用性,考虑主从热备初步准备采用keepalive这个工具来完成这个需求,下面主要做了一个keepalive入门实验
测试环境
两台centos
172.171.48.151 主
172.171.48.158 备
keepalive两台机器都要安装
安装前准备工作
keepalive依赖下面几个包
rpm -qa |grep gcc
rpm -qa |grep openssl-devel
如果没安装的就yum一下
安装keepalive
下载最近的安装包 http://www.keepalived.org/
本人上传到linux机器的 /usr/local/program/ 目录下
执行解压
tar -zxvf keepalived-1.2.19.tar.gz
执行安装
cd keepalived-1.2.19 ./configure make make instal
还有
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/sbin/keepalived /usr/sbin/
配置keepalive
配置文件路径:/etc/keepalived/keepalived.conf
151上的keepalived.conf
! Configuration File for keepalived #全局配置标识,表面下面的区域{}是全局配置 global_defs { #里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个 notification_email { nanyoujichen@163.com } #notification_email_from:表示发送通知邮件时邮件源地址是谁 notification_email_from 17wifi@fnic.cn #smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1 smtp_server mail.fnic.cn #smtp_connect_timeout:连接smtp超时时间 smtp_connect_timeout 30 router_id LVS_DEVEL } #vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值 vrrp_instance VI_1 { #本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。 state MASTER #interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定 interface p4p1 #virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样 virtual_router_id 100 #priority:设置本节点的优先级,优先级高的为master,不能超过255 priority 100 #advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S advert_int 1 #验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样 authentication { auth_type PASS auth_pass 1111 } #VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段 virtual_ipaddress { 172.171.51.152 } }
158上的keepalive.conf
! Configuration File for keepalived #全局配置标识,表面下面的区域{}是全局配置 global_defs { #里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个 notification_email { nanyoujichen@163.com } #notification_email_from:表示发送通知邮件时邮件源地址是谁 notification_email_from 17wifi@fnic.cn #smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1 smtp_server mail.fnic.cn #smtp_connect_timeout:连接smtp超时时间 smtp_connect_timeout 30 router_id LVS_DEVEL } #vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值 vrrp_instance VI_1 { #本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。 state SLAVE #interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定 interface p1p1 #virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样 virtual_router_id 100 #priority:设置本节点的优先级,优先级高的为master,不能超过255 priority 90 #advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S advert_int 1 #验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样 authentication { auth_type PASS auth_pass 1111 } #VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段 virtual_ipaddress { 172.171.51.152 } }
启动2台机器的keepalive
/etc/init.d/keepalived start
两台机器的1199端口分别都部署了2个测试web应用,用来模拟主备的情况
当2台机器的keepalive同时启动时
访问
http://172.171.51.152:1199/TestHa/
应该是主生效
结果如图:
当关掉主的keepalive时,模拟主挂掉的情况,应该是从生效
在151上执行
/etc/init.d/keepalived stop
然后在请求url,结果:
可见keepalive虚拟出一个虚拟主机171.172.51.152,然后keepalive顺利的排除了已经挂掉的主机,让请求访问到了备机
思考
虽然上图很好的演示了主备情况,但是对于javaweb应用来说,通常都是tomcat挂死,而这个情况下keepalive仍然会继续运行,所以此时要做到tomcat的主备,就必须自己实现一个shell命令,检测tomcat状态,如果tomcat http请求失败,kill掉keepalived进程,这样就可以自动切换到备用机器。
资料:
http://www.cnblogs.com/hdflzh/p/4057098.html
http://www.cnblogs.com/tankaixiong/p/4065080.html
相关推荐
nginx+keepalive主从 双机热备 + 自动切换解决方案
nginx+keepalive主从 双机热备 + 自动切换解决方案 就可实现负载均衡及高可用集群
主要介绍freeswitch使用keepalived做主备的逻辑图,实现脚本!附:keepalived安装手册
通过keepalived,实现多台GlusterFS高可用的存储配置方案。2个节点的GlusterFS无法避免脑裂问题,多台GlusterFS如何提供统一的挂载服务,通过该技术方案,完美的实现了VIP方式的高可用的GlusterFS存储方案。
这样做的好处是不需要自己实现心跳报文来侦测链路是否存活,简化了应用代码。设置keepalive之后,若tcp断开,则在使用该socket读写时立即失败。全部源代码,直接gcc命令就可以编译;运行本测试代码,然后拔掉主从...
springboot keepalive 服务端,客户端测试
mysql主主复制+keepalive 这是keepalive1.1.17.tar.gz
keepalived+nginx实现双主热备
Centos6.5安装keepalive步骤
MySQL MHA KEEPALIVE最佳部署指南
keepalive--aarch64.rar
vue项目中经常会用到keepalive来做缓存,在应付基本要求上可以说非常方便。但是遇到同一个页面,根据条件不同,分别缓存或者不缓存,就有些麻烦了。 首先先把坑列出来: 1. <keep-alive v-if="xxx"> ...
高性能业务架构解决方案(HAproxy+Keepalived) Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件。对于大型的,需要进行高并发的网站或者对网络不太严格的场景,可以使用Nginx;对于大型的Web服务器的时候可以...
KEEPALIVE安装配置手册 REDIS集群配置 各种算法分析
判定断开前的KeepAlive探测次数舒服点
Keepalive+mysql主主同步图文教程
Gre keepalive Cisco document; And linux c code; Only for reference.
keepalived+nginx双机热备+负载均衡 非抢占模式,支持虚拟IP切换,tomcat负载均衡配置等服务,可以动态自动切换
nginx1.9.7+keepalive1.3.2,可搭建Nginx可高用集群和自动故障转移
nginx+keepalive