redis集群监控工具setinel
http://www.cnblogs.com/LiZhiW/p/4851631.html
redis的setinel也是一个需要安装的软件,本身有主从集群,安装后只需在,安装的根目录创建一个配置文件表明要监控的软件(ip+端口即确定软件)
多数setinel决定迁移主才迁移,(这里这种有主从的集群只要监控主即可,主有从的信息)
一般的软件都有报警脚本机制
每个sentinel都可投票,最终由主的setinel转移master,监控reids主后客户或主的监控列表及从信息,之后的切换数据改变(主变)就会自己动态维护(以开始配置好的为起点维护)
Redis-sentinel是Redis实例的监控管理、通知和实例失效备援服务,是Redis集群的管理工具。在一般的分布式中心节点数据库中,Redis-sentinel的作用是中心节点的工作,监控各个其他节点的工作情况并且进行故障恢复,来提高集群的高可用性。
Redis-sentinel是Redis的作者antirez在今年6月份完成的,因为Redis实例在各个大公司的应用,每个公司都需要一个Redis集群的管理工具,被迫都自己写管理工具来管理Redis集群,antirez考虑到社区的急迫需要,花了几个星期写出了Redis-sentinel。
Redis-sentinel的三大功能:监测、通知、自动故障恢复。首先Redis-sentinel要建立一个监控的master列表,然后针对master列表的每个master获取监控其的sentinels和slaves供以后故障恢复使用。
自动发现sentinel和slave
一个sentinel实例的监控master在配置文件中指定,如sentinel A在配置文件中指定管理的master ip:port列表,并且指定连接失败超时的时间和是否可以故障恢复等参数。这样,sentinel A就建立了监控的master列表。
sentinel A作为客户端建立对其监控master 1的pub/sub连接和命令传输连接,pub/sub连接的目的是通过消息传递来获取监控master 1的所有sentinels,具体方式是订阅”sentinel:hello”频道,并这个频道publish 自己的host信息,这样,所有监控master 1的sentinels都通过订阅master 1的“sentinel:hello”频道来获取其他sentinels的信息。sentinel A就建立了master 1的sentinels列表。 sentinel A还通过间断的info命令获取master 1的slaves列表,如果连接超时或者失败,就会进入故障处理的例程。
故障恢复准备
Redis-sentinel定义了故障的master两种状态,O_DOWN(objectively)和S_DOWN(subobjectively)。当sentinel A连接master 1失败后,sentinel A认定master 1为subobjectively状态,然后sentinel A查看监控master 1的sentinels的认定情况。因为sentinel之间会建立连接并且不断的发起info命令询问和回应,因此在sentinel A认定master 1 S_DOWN后,sentinel A通过SENTINEL IS-MASTER-DOWN-BY-ADDR命令来不断获得其他sentinel的认定情况,如果有超过quorum(配置中指定)个sentinel认定master 1已经DOWN,那么就确定master 1为O_DOWN。然后sentinel A必须有master 1的can failover权限,这也是配置文件指定的。接着,sentinel A需要得知master 1的leader sentinel,由leader来进行master 1的错误恢复。
master 1的leader sentinel由选举产生,每个监控master 1的,并且具有错误恢复权限的sentinel都需要进行一次叫做subjective leader判断,也就是sentinel自己认定的leader,然后sentinel之间通过SENTINEL IS-MASTER-DOWN-BY-ADDR命令交流leader的认定情况,然后最终得到一个共识。
然后由这个master 1的leader sentinel来启动错误恢复例程。
故障处理
sentinel A作为master 1的leader,会选取一个master 1的slave作为新的master。slave的选取是根据一个判断DNS情况的优先级来得到,优先级相同通过runid的排序得到,但目前优先级设定还没实现,所以直接获取runid排序得到slave 1。
然后发送命令slaveof no one来取消slave 1的slave状态来转换为master。当其他sentinel观察到该slave成为master后,就知道错误处理例程启动了。sentinel A然后发送给其他slave slaveof new-slave-ip-port 命令,当所有slave都配置完后,sentinel A从监测的masters列表中删除故障master,然后通知其他sentinels。
总结
Redis-sentinel作为一个集群管理工具,基本满足了要求。但是Redis集群的需求却仍然存在。Redis集群作为分区结果,分区的配置仍然需要客户端或者代理协议实现,Redis集群作为一个整体还需要更长的路。Redis-cluster的草案早于出炉,但是实现却已经停留了很久。antriez承诺在Redis 3.0推出Redis-cluster功能。
参考:
Redis集群管理工具Redis-sentinel原理分析
http://os.51cto.com/art/201303/385437.htm
http://www.cnblogs.com/LiZhiW/p/4851631.html
相关推荐
"Redis集群监控软件"就是针对这一需求设计的工具,它能帮助我们便捷地部署并全方位监控Redis集群。 该工具的主要功能包括: 1. **实时监控**: 提供实时监控功能,可以直观地查看各个Redis节点的内存使用情况。这...
【Redis集群连接及工具类DEMO】是一个Spring工程,它提供了与Redis集群交互的实例,同时也包含了一些实用的工具类,使得开发者能够更方便地在Java应用中使用Redis作为数据存储。这个DEMO的主要目标是展示如何配置和...
在命令行中,使用`redis-trib.rb`工具(在Redis源码包的`src`目录下)初始化集群。执行以下命令,其中`ip:port`是你准备的每个节点的IP和端口号: ```bash redis-trib.rb create --replicas 1 node1_ip:port node2_...
在本资源包中,提供了搭建Redis集群所需的各种工具和教程,帮助你在Windows环境下进行操作。 首先,让我们来了解Redis集群的基础知识。Redis集群通过分片(Sharding)技术将数据分散到多个节点上,实现数据的冗余和...
首先,我们需要安装Ruby环境,因为Redis的集群配置工具`redis-trib.rb`是用Ruby编写的。这里提供的`rubyinstaller-2.2.3-x64.exe`就是Ruby的安装程序,它包含了运行Ruby程序所需的所有组件。安装过程中,确保勾选...
k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群
阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...
Redis-sentinel是Redis的作者antirez完成的,因为Redis实例在各个大公司的应用,每个公司都需要一个Redis集群的管理工具,被迫都自己写管理工具来管理Redis集群,antirez考虑到社区的急迫需要(详情),花了几个星期写...
redis集群客户端管理工具
使用redis安装用户,在命令行连接上redis集群后,执行命令:config set requirepass 【自定义的强密码】,如: config set requirepass mypassword@#75@~ 然后执行 config rewrite 将配置密码持久化到redis配置文件...
SpringBoot集成Redis集群 在本文档中,我们将指导您如何在SpringBoot 2.X中集成Redis集群。下面是相关的知识点: 集成Redis集群的必要性 在实际应用中,使用Redis集群可以提高系统的可扩展性和可靠性。Redis集群...
在Spring Boot 2.1及以上版本中,我们可以利用`spring.redis.cluster.nodes`属性来实现零配置连接到Redis集群,只需将所有集群节点的IP和端口以逗号分隔的形式列出即可,如: ```properties spring.redis.cluster....
本文将详细介绍如何进行Redis集群的数据迁移,包括全量和增量数据迁移,以及离线迁移的方法,主要工具是RedisShake。 RedisShake是一款由阿里巴巴开发的数据迁移工具,它支持Redis集群的存量和增量数据迁移,同时也...
2. Redis工具类,封装了基本的Redis操作,如存取对象、哈希操作等。 3. 示例实体类,演示如何存储和检索对象。 4. Maven配置,确保所有依赖正确导入并能正常运行项目。 部署这个项目时,确保你的环境中已经安装了...
在使用redis集群时,发现过期key始终监听不到。网上也没有现成的解决方案。于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听。以上做法可能不尽人意,目前也没找到好的解决...
标题中的“rancher2.3.6部署redis集群配置教程.pdf”暗示了这份文档是针对特定版本的Rancher软件(版本号2.3.6)的使用教程,旨在指导用户如何部署Redis集群。Rancher是一款开源的容器管理平台,可以用来部署、管理...
Redis集群是一种分布式数据库解决方案,它允许用户将数据分散存储在多台服务器上,以提高系统的可扩展性和可用性。在“Redis集群测试”中,我们通常会关注以下几个关键知识点: 1. **集群架构**:Redis集群采用无...
Windows Redis 集群搭建: 1、Redis 3.2.100。 2、redis-trib.rb。 3、rubygems-2.6.11.zip。 4、rubyinstaller-2.2.6.exe。
在IT行业中,管理和监控分布式系统,如Redis集群,是至关重要的任务。为了确保系统的稳定性,及时发现并处理问题,开发者通常会创建自动化监控脚本。本文将深入探讨如何使用Shell脚本来监控Redis集群节点,并在检测...
1. **RubyInstaller**: Ruby是一种面向对象的脚本语言,Redis的集群配置工具`redis-trib.rb`就是用Ruby编写的。RubyInstaller是Windows上的Ruby环境安装器,通过它可以在Windows系统上安装Ruby运行时环境。 2. **...