keepalive代理访问redis哨兵集群主节点

Keepalive+redis主从复制实现redis高可用 Keepalive+redis主从复制实现redis高可用 一、背景描述 项目上使用的软件是使用的单机版本redis,客户质疑为什么现在还用单机呢?故障了怎么办,要求做高可用。 redis有三种方式 ①、主从复制 优点:数据高可用。 缺点:主节点故障后无法自动转移到从节点。 ②、哨兵模式 优点:主节点故障可以不影响业务使用,做到了高可用。 缺点:程序需要连接哨兵IP+端口,意味着现在的业务代码需要做一些修改(不知道准确不)。 ③、集群 优点:三主三从可以扩展分片数。 缺点:①、是否程序需要连接所有集群的IP 阅读详情

1.前言

搭建了redis哨兵集群后,一般以master节点接收写请求,然而当master节点出现故障后哨兵会投票选举一台slave节点晋升为master节点,此时master的ip地址就发生了变化,就需要重新给写请求指定访问的ip地址,所以使用keepalive去代理master节点的地址,使用keepalive的vrrp_script模块通过脚本是否执行成功去增加节点的权重,若脚本执行成功状态为0则权重增加,若脚本执行不成功状态不为0则权重回退到原来的权重,即使脚本多次执行成功权重也只会增加一次

2.节点信息

名称

ip

port

redisA

10.1.60.114

6379,26379

redisB

10.1.60.115

6379,26379

redisC

10.1.60.80

6379,26379

vip

10.1.60.116

3.搭建环境并配置服务

3.1关闭防火墙(三个节点执行)

systemctl stop firewalld

3.2关闭selinux

setenforce 0

3.3安装keepalive服务(三个节点执行)

yum -y install keepalived

3.4更改原来的配置文件名作为备份(三个节点执行)

find / -name keepalived.conf(查找配置文件路径)

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

3.5创建新的keepalive配置文件(三个节点都配置下列的配置文件信息,只有router_id不同)

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   script_user root
   enable_script_security
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id redis01    #三台节点需要配置不一致的id,随机命名即可
  #vrrp_skip_check_adv_addr
  #vrrp_strict
  #vrrp_garp_interval 0
  #vrrp_gna_interval 0
}

vrrp_script check_redis {
   script "/etc/keepalived/check-redis-role.sh"  #
   interval 5   #每间隔5秒执行一次脚本检测
   weight 20  #脚本退出状态为0则权重增加20,脚本退出状态不为0则不执行权重增加,当权重设置为负,则需要脚本退出状态为1才会执行,退出为0是不会执行权重为负的设置
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 51
    priority 70  #初始权重配置70
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.1.60.116
    }
    track_script {
        check_redis
    }
}

3.6编辑监控脚本(三个节点均需配置)

vi /etc/keepalived/check-redis-role.sh

#!/bin/bash
state=`redis-cli -p 6379 -a Nfd@9527 info replication | grep -i "role" |grep -i "master"|wc -l` #检测当前节点是否是master
redis=`ps -ef |grep redis-server|grep -v grep |wc -l` #检测redis服务是否存活
if [ $redis == 0 ]; then  #等于0证明redis服务挂掉了
   systemctl stop keepalived 
else 
   if [ $state == 0 ]; then #等于0证明不是master节点,不等于0证明是master节点
      exit 1  #节点不是master脚本退出状态为1
   else
      exit 0  #节点是master脚本退出状态为0
   fi
fi

3.7给脚本增加执行权限(三个节点均需配置)

chmod +x /etc/keepalived/check-redis-role.sh

3.8搭建redis哨兵集群(使用此三个节点搭建)

参考redis哨兵集群搭建_redis搭建哨兵集群-优快云博客

3.9启用redis服务与哨兵服务(三个节点均需配置)

systemctl start redis

redis-sentinel /root/redis-6.2.11/sentinel.conf

3.10启用keepalive服务(三个节点均需配置)

systemctl start keepalived

3.11查看keepalive服务是否正常识别到master节点

4.模拟哨兵故障切换

4.1把master节点的redis服务关闭

systemctl stop redis

4.2查看原来master节点信息

4.3查看新master节点信息

5.重启挂掉的redis服务与keepalived服务

redis服务重启后会先默认是master状态,需要一会才会识别为slave状态,当节点为slave状态后再启动keepalive服务,所以在写redis检测脚本的时候在redis挂掉后需要把keepalive也干掉,不然redis重启的时候是master状态,keepalive也会竞选vip地址

6.若是防火墙没关闭需要配置开放防火墙规则否则keepalived直接不能互访(知识点补充)

Keepalived使用vrrp组播,默认地址是224.0.0.18,因此要配置防火墙放过

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload

Redis高可用方案:使用Keepalived实现主备双活 在该目录下创建scripts_redis文件夹,目录 /etc/keepalived/scripts_redis,将 redis_stop.sh 、redis_master.sh、redis_fault.sh 、redis_check.sh 、redis_backup.sh 放入scripts_redis文件目录下。首先确保两台服务器都安装了Redis服务,Redis的端口号和密码两台服务器必须保持一致。首先需要修改备服务器redis配置文件,把备服务器redis挂载到主服务器redis下面实现主从配置。 阅读详情

相关推荐

一文速通lambda与函数式编程

如果我们希望能够读取两行的拼接结果,读取所有数据,也可能读取一个字符,这时候我们就可以基于函数式接口,将行为抽象为函数式接口,从而实现将用户自定义行为参数化,从而完成个性化功能拓展。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。当然上述的声明还不是最精简的,因为我们的逻辑仅仅为一行代码,按照。

禅与计算机程序设计的艺术 1625

keepalive与redis主从

keepalive与redis主从 本文只讲述keepalived如何配置才能保证redis的高可用; 安装与防火墙策略修改 yum install -y keepalived #安装命令 systemctl enable keepalived #配置开启自启动 #防火墙策略修改 firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --destination 224.0.0.18 --protocol vrrp -j

w329636271的专栏 1062

Redis哨兵主从模式+keepalived.docx

Redis哨兵主从模式+keepalived

Redis哨兵+keepalived高可用实战

redis哨兵高可用 基本环境 机器 IP db01 192.168.0.51(master) db02 192.168.0.52(slave) db03 192.168.0.53(slave) 1:VIP随MASTER飘动,无需手动改 2:主从关系切换由sentinel管理 3:keepalived三个state全部设置为BACKUP,如果role:master的话,优先级+10(默认三个优先级全为100),不能开启nopreempt,否则只要keepalived运行,就不会释

jiayu的博客 3585

MATLAB 设置legend加标题

x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')%水平 legend添加标题 lgd = legend; lgd.Fon

早起CaiCai的学习空间 4714

AT32串口打印全攻略:从零搭建到printf重定向(GCC版)

本文详细介绍了在GCC编译环境下为AT32系列MCU实现串口打印与printf重定向的完整方案。针对从Keil MDK迁移到GCC工具链时常见的串口无输出问题,文章从环境搭建、USART配置入手,重点剖析了GCC下printf重定向的核心原理——通过重写_write()函数,并提供了经过验证的代码实现、常见问题排查及性能优化建议。

weixin_29163797的博客 265

Redis 知识体系(文档型 NoSQL)

本文深入解析Redis八大基础数据结构及其底层编码实现,涵盖String、List、Set、ZSet、Hash、Geo、Bitmap、HyperLogLog和Stream等核心结构。通过源码级分析,揭示了SDS、Ziplist、Dict等底层组件的设计原理,并详细探讨了Redis的高性能IO模型、持久化机制(RDB/AOF/混合模式)、内存管理策略及高可用架构(主从/哨兵/Cluster)。 重点剖析了Redis在工程实践中的典型问题与优化方案,包括缓存穿透/击穿/雪崩的解决方案、分布式锁的完整实现(含Re

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 796

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2209

高可用 - 08 Keepalived集群中Master和Backup角色选举策略

在Keepalived集群中,其实并没有严格意义上的主、备节点,虽然可以在Keepalived配置文件中设置“state”选项为“MASTER”状态,但是这并不意味着此节点一直就是Master角色。控制节点角色的选项是Keepalived配置文件中的“priority”值,但并它并不控制所有节点的角色。另一个能改变节点角色的选项是在模块中设置的“weight”值。这两个选项对应的都是一个整数值,其中“weight”值可以是个负整数,一个节点在集群中的角色就是通过这两个值的大小决定的。

小工匠 2万+

MAX96717实战:如何选择Host-to-Peripheral和Pass-Through I2C模式?附配置代码

本文深入解析MAX96717芯片的两种关键I2C模式:Host-to-Peripheral与Pass-Through。通过对比其核心差异、硬件连接考量及软件配置代码,为嵌入式开发者提供了清晰的模式选择策略与实战指南,帮助优化系统设计并避免常见通信故障。

weixin_29190573的博客 461

联想服务器ThinkSystemRAID阵列设置教程

关注我不迷路,全是干货! 以联想ThinkSystemSR530为例子进行示范。 开机点按【F1】 点击——【UEFI设置】 依次点击——【系统设置】——【存储】 点击——【RAID卡】 PS:本次服务器配置的是730-8i 阵列卡,按实际情况选中需要设置的阵列卡即可。 点击——【Main Menu】 点击——【Configuration Management】 点击——【Create Virtual Drive】 点击——【Select RAID Leve..

littlelotusK的博客 2万+

Redis配置tcp-keepalive和timeout参数测试

Redis配置tcp-keepalive和timeout参数测试

wejack的专栏 8590

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 313

redis集群-keepalived+redis

redis主安装在公网IP为x.x.x.x,内网为x1.x1.x1.x1的服务器上。redis从安装在公网IP为y.y.y.y,内网为y1.y1.y1.y1的服务器上。虚拟IP为z.z.z.z

weixin_43268590的博客 1846

Python爬虫实战【房产刚需专属】:爬取链家/贝壳完整房源数据,精准筛选刚需房源【房价+户型+地段+面积+装修】

本次爬虫的核心亮点就是刚需专属筛选,我已经把刚需买房的主流筛选逻辑封装为独立函数,你只需要修改筛选参数,就能精准匹配你的需求无需懂Python语法,直接改数字/文字即可!本次爬虫是刚需买房+Python爬虫实战的完美结合。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1826

什么是垂直同步?电脑快速消除屏幕撕裂与提升游戏性能的方法 垂直同步、游戏画面撕裂、游戏优化、VSync、FPS、FreeSync、G-Sync、显卡驱动更新、游戏画质、输入延迟

看这张动图,左边的画面出现了明显“切开”的断层现象,而右边画面非常流畅,没有撕裂。这正是「垂直同步」开关的区别。:每秒生成多少帧图像。比如 60FPS 表示一秒钟显示 60 张图片。刷新率(Refresh Rate):显示器每秒刷新几次画面,单位是赫兹(Hz)。60Hz 表示每秒刷新 60 次。参数说明FPS显卡渲染速度(逻辑帧率)刷新率显示器的显示频率(物理限制)当 FPS 高于刷新率时,显卡渲染的画面来不及被显示器显示,导致撕裂。屏幕撕裂(Screen Tearing)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1347

Redis学习笔记7:基于springboot的Lettuce redis客户端keepAlive保活机制

lettuce断线重连监视器ConnectionWatchdog#scheduleReconnect方法中的延迟重连时间是根据io.lettuce.core.resource.Delay策略来决定,默认是采用ExponentialDelay延迟策略,即2的幂次方,即时间是PT0.001S、PT0.002S、PT0.004S一直到最大PT30S。一个对springboot redis框架进行重写,支持lettuce、jedis、连接池、同时连接多个集群、多个redis数据库、开发自定义属性配置的开源SDK。

OceanSky的专栏 2902

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

keepalived和redis

keepalived和redis配置

luohw222的博客 466

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Keepalived中Master和Backup角色选举策略

在Keepalived集群中,其实并没有严格意义上的主、备节点,虽然可以在Keepalived配置文件中设置“state”选项为“MASTER”状态,但是这并不意味着此节点一直就是Master角色。控制节点角色的是Keepalived配置文件中的“priority”值,但并它并不控制所有节点的角色,另一个能改变节点角色的是在vrrp_script模块中设置的“weight”值,这两个选项对应的都是...

weixin_34095889的博客 381

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[REDIS]redis的一些配置文件

修改配置文件默认情况下只能接受本机的访问请求。在不写的情况下,无限制接受任何 IP 地址的访问。生产环境需要填写你应用服务器的地址。由于服务器是需要远程访问的,所以需要将其注释掉。注意:如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的响应。

紫洋的博客 1033

redis高可用:keepalived+redis主从部署

Redis主从+Keepalived

隙光 1万+

keepalive原理+redis+mysql

keepalive的故障切换原理 keepalive对负载均衡集群可以实现高可用 主机与备机共用一个vip的情况下,当主机宕机时,通过VRRP协议连接的心跳检测会中断,当超过限定时间后备机则判定主机挂掉,此时主机的ip和资源漂移到备机上,接替主机工作,当主机恢复后,备机再将ip和资源漂移到主机上,等待下次接替,来实现高可用 ...

诸葛中二的博客 609

搭建Redis主从集群+哨兵+代理predixy

搭建了一个 Redis 服务器集群(主从复制+哨兵模式+代理),实现了主从配置和容灾部署,使得主机出现故障时,可自动进行容灾切换,现详细记录下搭建过程以及遇到的问题提示:以下是本篇文章正文内容,下面案例可供参考记录点点滴滴。

panda_225400的博客 5207

【Redis技术探索】「高可用架构模式」哨兵(sentinel)模式实现主从故障互切换模式详解

Redis的架构运行模式:单机模式、主从模式、哨兵模式、集群模式等。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 1431

redis基础及哨兵集群部署、故障切换

一、概述 Redis是一个开源的,使用C语言编写,支持网络,可基于内存工作亦可持久化(AOF、RDB)的日志型,key-values(键值对)数据库,一个速度极快的非关系型数据库,也就是我们所说的NoSQL数据库,他可以存储(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展性能,并且它还提供了多种语言的API。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存

z2050025507的博客 1078

redis使用keepalive+单向主从,实现高可用,主从分离

atzqtzq的博客 148
上一篇: redis哨兵集群搭建
下一篇: jdk1.8环境配置
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值