keepalived安装

#下载keepalived
./configure --prefix=/usr/local
Make && make install Atlas主安装keepalived Atlas备安装keepalived

  

Atlas1 keepalived配置文件修改

Atlas1  Keepalived.conf文件如下:

! Configuration File for keepalived

global_defs {

}

#自定义vrrp脚本
vrrp_script chk_port {
script /etc/keepalived/atlas.sh
#60秒检查一次
interval 60
} vrrp_instance VI_1 {
#指定节点状态
state BACKUP
#制定绑定的网卡
interface eth0
#vrrp 组ID,同一组内必须相同
virtual_router_id 51
#优先权,值大优先级大
priority 100
#组播信息发送间隔
advert_int 1
#禁止抢占
nopreempt
#验证信息,两节点设置相同
authentication {
auth_type PASS
auth_pass 99989
}
track_script {
chk_port
}
#虚拟IP,两节点设置相同
virtual_ipaddress {
#虚拟IP 申请
192.168.0.221/24 dev eth0
}
##扩展
#notify_master /etc/keepalived/m.sh
#notify_backup /etc/keepalived/b.sh
}

  

 Atlas1 脚本 /etc/keepalived/atlas.sh

10秒检查一次,如果3次Atlas都是关闭,停止keepalived服务,vip切换
#!/bin/bash
v_port=3100
v_j=0
for ((i=0; i<3; i++)); do
#检测端口是否存在,用端口 或者 用进程
v_num=`netstat -npl | grep $v_port | grep mysql-proxy | wc -l`
v_mysql_proxy_num=`ps -C mysql-proxy --no-header |wc -l`
#端口不在,进程不在,关闭keepalived,切换VIP
if [ "$v_num" == "" -a "$v_mysql_proxy_num" == "" ]
then
v_j=`expr $v_j + 1`
fi
sleep 10
done if [ "$v_j" == "" ]
then
killall keepalived
fi

  

Atlas2 keepalived配置文件修改

! Configuration File for keepalived

global_defs {

}

#自定义vrrp脚本
vrrp_script chk_port {
script /etc/keepalived/atlas.sh
interval 60
} vrrp_instance VI_1 {
#指定节点状态
state BACKUP
#制定绑定的网卡
interface eth0
#vrrp 组ID,同一组内必须相同
virtual_router_id 51
#优先权,值大优先级大
priority 100
#组播信息发送间隔
advert_int 1
#禁止抢占
nopreempt
#验证信息,两节点设置相同
authentication {
auth_type PASS
auth_pass 99989
}
track_script {
chk_port
}
#虚拟IP,两节点设置相同
virtual_ipaddress {
192.168.0.221/24 dev eth0
}
##扩展
#notify_master /etc/keepalived/m.sh
#notify_backup /etc/keepalived/b.sh
}

Atlas2 脚本 /etc/keepalived/atlas.sh

10秒检查一次,如果3次Atlas都是关闭,停止keepalived服务,vip切换
#!/bin/bash
v_port=3100
v_j=0
for ((i=0; i<3; i++)); do
#检测端口是否存在,用端口 或者 用进程
v_num=`netstat -npl | grep $v_port | grep mysql-proxy | wc -l`
v_mysql_proxy_num=`ps -C mysql-proxy --no-header |wc -l`
#端口不在,进程不在,关闭keepalived,切换VIP
if [ "$v_num" == "" -a "$v_mysql_proxy_num" == "" ]
then
v_j=`expr $v_j + 1`
fi
sleep 10
done if [ "$v_j" == "" ]
then
killall keepalived
fi

说明

Atlas1,Atlas2 keepalived配置相同,BACKUP-BACKUP
三次扫描3100端口,如果不存在,关闭keepalived。VIP切换,注意目前Atlas主,从之间端口不一致。
主从端口最好一致,端口不一致,jdbc failover控制,不知道会不会出问题. 发生vip切换,需要查找原因,keepalived关闭后,需要手动启动,启动后不会占vip。

关于haproxy

连接池暂不考虑haproxy,如果性能出问题,最先在数据库,而不是中间件

Atlas 配置高可用的更多相关文章

  1. 集群相关、用keepalived配置高可用集群

    1.集群相关 2.keepalived相关 3.用keepalived配置高可用集群 安装:yum install keepalived -y   高可用,主要是针对于服务器硬件或服务器上的应用服务而 ...

  2. Nginx 配置高可用

    阅读本文需要安装Nginx 一 什么是高可用 nginx作为负载均衡服务器 所有请求都到了nginx 可见nginx处于非常重要的位置 如果nginx服务器宕机 后端web服务器将无法提供服务 影响严 ...

  3. Azure 配置高可用的准备系列工作-建立不同区域的存储账户和建立网络!

     我们谈到我们的业务,常常谈到一个词.三层架构,就是我们的UI层.数据訪问层和数据存储层的分离,通常情况下我们的业务高可用必须满足这三层的所有高可用的情况下才干达到最高级别的高可用. 那么谈到Az ...

  4. Linux集群介绍、keepalived介绍及配置高可用集群

    7月3日任务 18.1 集群介绍18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群扩展heartbeat和keepalived比较http://blo ...

  5. Nginx 配置高可用的集群

    1.什么是 nginx 高可用 (1)需要两台 nginx 服务器 (2)需要 keepalived (3)需要虚拟 ip 2.配置高可用的准备工作 (1)需要两台服务器 192.168.17.129 ...

  6. Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群

    一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...

  7. Nginx 配置实例-配置高可用

    Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...

  8. 配置高可用的Hadoop平台

    1.概述 在Hadoop2.x之后的版本,提出了解决单点问题的方案--HA(High Available 高可用).这篇博客阐述如何搭建高可用的HDFS和YARN,执行步骤如下: 创建hadoop用户 ...

  9. Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例

    前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...

随机推荐

  1. echart与Accelerometer综合

    首先是x,y,z轴的加速度统计,利用四个数组记录,并长度为偶数时生成图表 var x=[]; var y=[]; var z=[]; var t=[]; document.addEventListen ...

  2. 从sql中获取表名

    <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser ...

  3. javascript 返回上一页面:onclick="javascript:history.back(-1);"

    <a href="<a href="javascript :history.back(-1)">返回上一页</a>或<a href=& ...

  4. chapter07

    // 包和引入// 包也可以像内部类那样嵌套// 包路径不是绝对路径// 包声明链x.y.x并不自动 将中间包x和x.y变成可见// 位于文件顶部不带花括号的包声明在整个文件范围内有效// 包对象可以 ...

  5. JS——面向对象、继承

    创建对象的方式: 1)单体 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  6. ubuntu tomcat https

    1.generate key use java key tool -storepass *** 2.sign certificate sudo keytool -export -alias ### - ...

  7. 利用Python进行数据分析 2017 第二版 项目代码

    最近在学习<利用Python进行数据分析>,找到了github项目的地址, 英文版本,中文版本 (非常感谢翻译中文的作者). mark一下,方便后边学习查找.

  8. Sqoop Import数据库时中文乱码解决方案

    首先查看数据库参数编码: mysql> show variables like 'character%'; +--------------------------+--------------- ...

  9. DB2去重的几种方法

    有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 例如下表:table1 用户办理套餐的记 ...

  10. jQuery学习笔记(三)

    jQuery中的事件 页面加载 原生DOM中的事件具有页面加载的内容onload事件,在jQuery中同样提供了对应的内容ready()函数. ready与onload之间的区别: onload re ...