Atlas 配置高可用
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 配置高可用的更多相关文章
- 集群相关、用keepalived配置高可用集群
1.集群相关 2.keepalived相关 3.用keepalived配置高可用集群 安装:yum install keepalived -y 高可用,主要是针对于服务器硬件或服务器上的应用服务而 ...
- Nginx 配置高可用
阅读本文需要安装Nginx 一 什么是高可用 nginx作为负载均衡服务器 所有请求都到了nginx 可见nginx处于非常重要的位置 如果nginx服务器宕机 后端web服务器将无法提供服务 影响严 ...
- Azure 配置高可用的准备系列工作-建立不同区域的存储账户和建立网络!
我们谈到我们的业务,常常谈到一个词.三层架构,就是我们的UI层.数据訪问层和数据存储层的分离,通常情况下我们的业务高可用必须满足这三层的所有高可用的情况下才干达到最高级别的高可用. 那么谈到Az ...
- Linux集群介绍、keepalived介绍及配置高可用集群
7月3日任务 18.1 集群介绍18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群扩展heartbeat和keepalived比较http://blo ...
- Nginx 配置高可用的集群
1.什么是 nginx 高可用 (1)需要两台 nginx 服务器 (2)需要 keepalived (3)需要虚拟 ip 2.配置高可用的准备工作 (1)需要两台服务器 192.168.17.129 ...
- Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群
一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...
- Nginx 配置实例-配置高可用
Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...
- 配置高可用的Hadoop平台
1.概述 在Hadoop2.x之后的版本,提出了解决单点问题的方案--HA(High Available 高可用).这篇博客阐述如何搭建高可用的HDFS和YARN,执行步骤如下: 创建hadoop用户 ...
- Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...
随机推荐
- 牛客练习赛41D(思维转化)
AC通道 要点 思路:题解中将所求进行转化\[max\{相似度\} = max\{M-不相似度\} = M-min\{不相似度\}\]因此转化为求某01串T与所给众S串的最小不相似度,而最终答案是选取 ...
- jetty-env.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE Configure PUBLIC &quo ...
- 【aspnetcore】配置使用jwt验证
因为害怕token泄露出现问题,所以从未在项目中使用jwt.但这玩意现在真的很火,趁有空还是研究了一下. 在aspnetcore中实现jwt很简单,感觉微软把很多工作都做了,虽然开发效率上去了,但是使 ...
- C++学习 - 虚表,虚函数,虚函数表指针学习笔记
http://blog.csdn.net/alps1992/article/details/45052403 虚函数 虚函数就是用virtual来修饰的函数.虚函数是实现C++多态的基础. 虚表 每个 ...
- 【Unity3D/C#】利用IEnumerable<>和yield产生斐波那契数列
using UnityEngine; using System.Collections; using System.Collections.Generic; public class YieldTes ...
- hibernate丢失更新
如果多个线程操作基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失.Serializable可以防止更新丢失问题的发生.其他的三个隔 ...
- [备忘]java 静态块、非静态块、静态函数、构造函数 执行顺序
原文链接:http://liqita.iteye.com/blog/1472717 java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始 ...
- 一个容易被忽视的css选择器
之前学的的迷糊了,也不知道什么会什么不会了,跑去面试了.别人列出一堆css选择器,本以为选择器没啥的,结果到那个多类选择器翻车了,.a.b选择同时含a,b类名的,很尴尬所以回来仔细整理了一下.目前根据 ...
- Python开发环境Wing IDE如何使用调试功能
在使用Wing IDE开始调试的时候,需要设置断点的行,读取GetItemCount函数的返回.这可以通过单击行并选择Break工具栏条目,或通过单击行左边的黑色边缘.断点应该以实心红圈的形式出现: ...
- ArcMap中提取影像数据边界
1.前言 客户手里有一些经过裁剪的不规则多边形影像数据(如图例所示),希望能批量获取该类影像的边界信息,即影像对应的面信息,边界线信息.这里我们提供一种利用镶嵌数据集Footprint图层的方法来获取 ...