Redis(8):最简哨兵集群的搭建

        在之前的文章中,我们介绍了Redis的哨兵机制,也介绍了为什么哨兵集群最少需要三个哨兵节点,下面来动手搭建一个最简哨兵集群,也就是三个节点的哨兵集群。

一.哨兵集群的配置文件解读

        哨兵配置文件在你安装的redis的文件夹根目录下就可以找到,名称为:sentinel.conf。一般而言,我们需要配置的参数不多,配置的最多的参数为以下几项:

bind 192.168.31.12

port 5000

dir /var/sentinal/5000

sentinel monitor mymaster 192.168.31.12 6379 2

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

# sentinel auth-pass <master-name> <password>

哨兵常用配置解读

        一个哨兵节点是可以监控多个Redis集群的,在上面的展示中,这个哨兵节点监控了一个别名为mymaster的master-slaves的集群。如果你在这个哨兵的配置文件中同时配置了多份上面的配置的话,一个哨兵就可以同时监控多个master-slaves的集群。

二.部署经典的三节点哨兵集群

        关于哨兵节点为什么至少为三个,在上篇文章中已经详细的介绍了,关于quorum和majority这里也不再赘述了。

        首先,我们需要一个redis主从架构的集群,我这里使用的是一主二从这样的架构。

(1)创建哨兵配置文件的存放路径和哨兵的工作目录

mkdir -p /etc/sentinal

mkdir -p /var/sentinal/5000

(2)将redis安装目录下的sentinel.conf拷贝出来,改名5000.conf放入/etc/sentinal文件夹中,并将此操作和(1)中的操作在三台服务器中都进行,记得要更改bind 这个参数对应的服务器的ip。

(3)第二步进行完毕之后,我们就可以将哨兵运行起来了。

        首先在master节点所在的服务器命令行中输入redis-sentinel /ect/sentinal/5000.conf,哨兵正常运行的话,你可以看到如下图所示的输出:

哨兵启动成功

        我们分别在三台服务器上启动哨兵,你就可以在哨兵的日志中看到哨兵感知到master节点,slave节点,以及其他哨兵节点的启动。

哨兵感知到master,slave,以及其他哨兵

        哨兵之间是怎么感知到的呢?其实就是通过redis本身的pub/sub来实现的,即redis的消息发布和订阅channel消息系统和机制。我们可以通过下面几个指令来查看哨兵的状态:

sentinel master mymaster:查看当前master节点的状态和信息

sentinel slaves mymaster:查看当前master下的slave的状态和信息

sentinel sentinels mymaster:查看正在监控mymaster的哨兵的状态和信息

sentinel get-master-addr-by-name mymaster:得到mymaster的ip和端口号

三.容灾演练

(1)我们首先杀死master节点redis的进程,并删除/var/run/redis_6379.pid,接下来查看哨兵的日志:

首先使用ps -ef  | grep redis 查看redis的进程

然后使用 kill -9 port_num来杀死redis的进程

再将 /var/run/redis_6379.pid删除

kill master后的日志

其余哨兵的日志输出内容大致与它相同。

(2)配置文件更新了吗?我们一探究竟!

        我们首先查看哨兵配置文件中关于master节点的配置:

master节点的信息被更新

当哨兵运行起来之后,它的配置文件也会自动变化,比如:

sentinel leader-epoch mymaster 0

当我们初次将哨兵运行起来时这个参数为0,也就是版本号为0,当执行完一次故障转移之后,版本号发生了变化。

配置信息的版本号

哨兵配置文件最下方,在你将哨兵启动后也会发生变化:

哨兵配置文件的变化

我们也可以在命令行中查看哨兵的配置信息:

redis-cli 中查看master信息

那么还有的问题就是,经过主备切换之后,我们之前的数据有没有丢失呢?

获取之前的数据

我们也可以通过info指令来查看之前是slave,然后被提升为master节点的redis节点的信息:

现任master节点的信息

我们将刚刚杀死的redis进程重启,看看会发生什么变化:

降级之后的master节点信息

然后查看哨兵的日志信息:

原master节点作为slave连上

(3)原本的master节点在重启服务器之后能变回master吗?

        答案是否定的,现在的配置文件已经发生变化,重启后的master节点仍然是故障转移之后的master,故障转移是重启不可逆的。

(4)哨兵作为守护进程运行

        现在哨兵的运行是我们直接可以看到的,日志也是直接输出到控制台,要是服务器宕机了的话,我们连日志都没得看,下面我们会介绍两个参数,让哨兵作为守护进程运行,将日志输出到日志文件中:

daemonize yes

logfile /var/log/sentinel/5000/sentinel.log

别忘记使用:mkdir -p /var/log/sentinel/5000 将日志文件的路径创建好

这样哨兵就会以守护进程去运行,日志信息将输出到文件中。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容