配置keepalived+ssdb高可用

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 配置keepalived+ssdb 配置HA高可用。

在前两篇已完成keepalived的安装及service配置,ssdb在此处不再说明,可以参考ssdb官网说明:http://ssdb.io/zh_cn


以下介绍一下如何结合keepalived+ssdb搭建ssdb高可用环境。


1.配置ssdb的监控命令及脚本

由于ssdb可以兼容redis,所以这里使用redis-cli工具来监控ssdb server。

(1)下载redis server source code

(2)在redis code目录下make

(3)将make好的redis-cli复制到/usr/local/redis_tools目录下

2.配置监控脚本,内容如下:

#!/bin/bash
LOGFILE="/var/log/keepalived-ssdb-check.log"
if [ "`/usr/local/redis_tools/redis-cli -h $1 -p $2 PING`" == "PONG" ]; then :
   exit 0
else
   sleep 1
   if [ "`/usr/local/redis_tools/redis-cli -h $1 -p $2 PING`" == "PONG" ]; then :
      exit 0
   else
      date >> $LOGFILE
      echo "Failed:redis-cli -h $1 -p $2 PING" >> $LOGFILE 2>&1
      service keepalived stop
      exit 1
   fi
fi

3.配置keepalived vrrp 内容如下:

keepalived 实例1:Master节点

global_defs {
    notification_email {
        tt@lxs.com.cn
    }
    notification_email_from alert@lxs.com.cn
    smtp_server smtp.exmail.lxs.com
    smtp_connect_timeout 30
    enable_traps
    router_id SSDBKVM01
}

vrrp_script chk_ssdb {
    script "/etc/keepalived/check_ssdb.sh 127.0.0.1 8888"
    interval 2
    weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    mcast_src_ip 192.168.124.64
    virtual_router_id 101
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_ssdb
    }
    virtual_ipaddress {
        192.168.124.101/24
    }
}

keepalived 实例2:Backup节点

global_defs {
    notification_email {
        tt@lxs.com.cn
    }
    notification_email_from alert@lxs.com.cn
    smtp_server smtp.exmail.lxs.com
    smtp_connect_timeout 30
    enable_traps
    router_id SSDBKVM01
}

vrrp_script chk_ssdb {
    script "/etc/keepalived/check_ssdb.sh 127.0.0.1 8888"
    interval 2
    weight -2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    mcast_src_ip 192.168.124.65
    virtual_router_id 101
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_ssdb
    }
    virtual_ipaddress {
        192.168.124.101/24
    }
}


其中,virtual_router_id 取值在0-255之间,用来区分多个instance的VRRP组播。在同一网段内virtual_router_id值不能重复,否则会报错:ip address associated with VRID not present in received packet


保存上面的内容,重新加载配置文件。

service keepalived reload


目录
相关文章
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
711 3
|
存储 安全 前端开发
绿色蔬菜销售管理系统
绿色蔬菜销售管理系统
|
Java
Java——抽象类和接口
抽象类是一种不能被实例化的类,至少包含一个抽象方法(无实现体的方法),常用于定义一组相关类的共同特征,并强制子类实现特定方法。抽象方法不能被 `static` 或 `final` 修饰,且必须被重写。 接口则是一个完全抽象的类,用于规范类的行为。接口使用 `interface` 关键字定义,不能实例化,并且类与接口之间是实现关系。 内部类是在一个类内定义的类,分为成员内部类、静态内部类、局部内部类和匿名内部类。成员内部类可被修饰符修饰,静态内部类只能访问外部类的静态成员,局部内部类定义在方法内,匿名内部类则隐藏了名字,直接通过 `new` 关键字定义并实现接口或继承类。
111 5
Java——抽象类和接口
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
112 1
|
机器学习/深度学习 自然语言处理 算法
从滑动窗口到YOLO、Transformer:目标检测的技术革新
从滑动窗口到YOLO、Transformer:目标检测的技术革新
391 0
|
Docker 容器
在 EAS 构建中使用其他 Docker 功能,如自定义 Dockerfile 或多阶段构建
在 EAS 构建中使用其他 Docker 功能,如自定义 Dockerfile 或多阶段构建
|
SQL
leetcode-SQL-1050. 合作过至少三次的演员和导演
leetcode-SQL-1050. 合作过至少三次的演员和导演
77 0
|
Linux 网络安全
CentOS7与CentOS6的一些不同地方(命令)
CentOS7与CentOS6的一些不同地方(命令)
139 0
|
XML SQL 缓存
MyBatis Mapper 接口方法执行原理分析
前言 通过前面入门 MyBatis 的文章《MyBatis 初探,使用 MyBatis 简化数据库操作(超详细)》,我们已经对 MyBatis 有了一定了解。
604 0
|
弹性计算
关于使用阿里云ECS的体验
关于使用阿里云ECS云服务器的个人体验以及一些平时使用时遇到的问题和解决办法。