xml地图|网站地图|网站标签 [设为首页] [加入收藏]

哨兵模式

来源:http://www.ccidsi.com 作者:集成介绍 人气:83 发布时间:2019-12-22
摘要:Redis sentinel 哨兵格局,redissentinel 一、sentinel介绍 Sentinel作用:   1卡塔尔国:Master状态检查测量试验  2卡塔尔(英语:State of Qatar):若是Master卓殊,则会开展Master-Slave切换,将内部四个

Redis sentinel 哨兵格局,redissentinel

一、sentinel介绍

Sentinel作用: 
1卡塔尔国:Master状态检查测量试验 
2卡塔尔(英语:State of Qatar):若是Master卓殊,则会开展Master-Slave切换,将内部四个Slave作为Master,将事情发生前的Master作为Slave 
3):Master-Slave切换后,master_澳门皇家娱乐在线,redis.conf、slave_redis.conf和sentinel.conf的开始和结果都会发出退换,即master_redis.conf中会多后生可畏行slaveof的配置,sentinel.conf的监督检查指标会随着调换 

Sentinel职业格局: 
1卡塔尔国:每一种Sentinel以每分钟一回的频率向它所知的Master,Slave以致任何 Sentinel 实例发送三个 PING 命令 
2卡塔尔:假若一个实例(instance)距离最终三回有效复苏 PING 命令的岁月超过down-after-milliseconds 选项所内定的值, 则那几个实例会被 Sentinel 标志为主观下线。 
3卡塔尔国:如若三个Master被标记为主观下线,则正在监视那么些Master的保有 Sentinel 要以每秒二次的频率鲜明Master的确步入了主观下线状态。 
4卡塔尔(英语:State of Qatar):当有丰硕数量的 Sentinel(大于等于配置文件内定的值)在内定的日子约束内确定Master的确踏向了主观下线状态, 则Master会被标识为客体下线 
5卡塔尔:在近似情形下, 各样 Sentinel 会以每 10 秒三回的功用向它已知的富有Master,Slave发送 INFO 命令 
6卡塔尔:当Master被 Sentinel 标志为合理下线时,Sentinel 向下线的 Master 的兼具 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒三遍 
7卡塔尔:若未有丰富数量的 Sentinel 同意 Master 已经下线, Master 的制造下线状态就能够被移除。 
8卡塔尔:若 Master 重新向 Sentinel 的 PING 命令归来有效复苏, Master 的岂有此理下线状态就能被移除。

不可捉摸下线和合理下线 
无缘无故下线:Subjectively Down,简单称谓 SDOWN,指的是时下 Sentinel 实例对有些redis服务器做出的底线判别。 
创造下线:Objectively Down, 简单的称呼 ODOWN,指的是七个 Sentinel 实例在对Master Server做出 SDOWN 剖断,何况经过 SENTINEL is-master-down-by-addr 命令相互交换之后,得出的Master Server下线判别,然后打开failover.

通俗来说就是: 
redis的sentinel系统用来保管八个redis服务器,能够完结贰个效应上贯彻HA的集群。该连串首要实行八个任务: 
①监察和控制( Monitoring ): Redis Sentinel实时监察和控制主服务器和从服务器运转景况。 
②提醒(notification): 当被监督的有些 Redis 服务器现身难点时, Redis Sentinel 可以向系统管理员发送文告, 也得以透过 API 向别的程序发送布告 
四个总结的骨干构造加sentinel集群的结构图如下: 

澳门皇家娱乐在线 1

 上海教室是大器晚成主两从节点,sentinel集群之间会相互通讯,沟通交换redis节点的气象,做出相应的论断并拓宽拍卖,这里的无理下线状态和创设下线状态是超重大的图景,它们决定了是或不是举行故障转移 可以通过订阅钦赐的频道消息,当服务器现身故障得时候布告管理员 客商端可以将 Sentinel 看作是二个只提供了订阅功效的 Redis 服务器,你不得以接纳 PUBLISH 命令向那些服务器发送音信,但您能够用 SUBSC福睿斯IBE 命令可能 PSUBSC奔驰G级IBE 命令, 通过订阅给定的频道来拿到相应的平地风波提醒。 

一个频段可以吸取和那一个频道的名字同样的事件。 比如说, 名字为 sdown 的频段就足以接到全数实例步入主观下线(SDOWN)状态的平地风波。

二、搭建redis-sentinel 集群处境

1、下载redis编写翻译安装包:redis-2.8.19.tar.gz,然后解压缩实行编写翻译安装。将redis安装到/opt/redis目录下。

1 [[email protected]108 redis]# mkdir bin              #redis脚本文件 
2 [[email protected]108 redis]# mkdir conf             #redis配置文件 
3 [[email protected]108 redis]# mkdir data             #redis的本地数据存放 
4 [[email protected]108 redis]# mkdir logs             #redis日志文件 
5 [[email protected]108 redis]# tar zxvf redis-2.8.19.tar.gz cd redis-2.8.19 
6 [[email protected]108 redis]# make PREFIX=/opt/redis install cp *.conf /opt/redis/conf  #把安装源文件中的.conf配置文件拷贝一份到安装目录下的conf目录中。 
7 [[email protected]108 redis]# cd /opt/redis/conf cp redis.cof redis.conf.bak cp sentinel.conf sentinel.conf.bak   

2.在安装redis成功后,能够在/opt/redis/bin目录下看看以下内容:

1 [[email protected]108 bin]# ll
2 total 15220
3 -rwxr-xr-x 1 root root 4586251 Mar 10  2015 redis-benchmark
4 -rwxr-xr-x 1 root root   22177 Mar 10  2015 redis-check-aof
5 -rwxr-xr-x 1 root root   45387 Mar 10  2015 redis-check-dump
6 -rwxr-xr-x 1 root root 4679739 Mar 10  2015 redis-cli
7 lrwxrwxrwx 1 root root      27 Jun 20 15:59 redis-sentinel -> /opt/redis/bin/redis-server
8 -rwxr-xr-x 1 root root 6241748 Mar 10  2015 redis-server

3、更改master机器配置文件(这里平昔动用的sed命令做的轮番):

 1 # -- redis.conf                                                   #修改redis.conf
 2 sed -i 's/daemonize no/daemonize yes/g' redis.conf            #使用后台方式运行         
 3 sed -i 's/logfile ""/logfile "/opt/redis/logs/redis.log"/g' redis.conf  #配置日志路径
 4 # no AOF and RDB for master                                #配置数据同步策略,master节点注释关闭掉dump数据同步
 5 sed -i 's/save 900 1/# save 900 1/g' redis.conf
 6 sed -i 's/save 300 10/# save 300 10/g' redis.conf
 7 sed -i 's/save 60 10000/# save 60 10000/g' redis.conf
 8 sed -i 's/appendonly no/appendonly yes/g' redis.conf          #打开aof同步
 9 sed -i 's/dir .//dir "/opt/redis/data/"/g' redis.conf       #配置数据文件存放路径
10 sed -i 's/slowlog-log-slower-than 10000/slowlog-log-slower-than 5000/g' redis.conf
11 sed -i 's/slowlog-max-len 128/slowlog-max-len 1000/g' redis.conf
12  
13 # -- sentinel.conf                                                #修改sentinel.conf文件
14 echo 'daemonize yes' >> sentinel.conf                        #后台方式运行sentinel
15 echo 'logfile /opt/redis/logs/sentinel.log' >> sentinel.conf
16 sed -i 's/sentinel monitor mymaster 127.0.0.1 6379 2/sentinel monitor mymaster 10.135.40.118 6379 2/g' sentinel.conf  #配置哨兵模式 

 

4、更改slave机器配置文件,两台slave配置相通:

 1 # -- redis.conf
 2 sed -i 's/daemonize no/daemonize yes/g' redis.conf      
 3 sed -i 's/logfile ""/logfile "/opt/redis/logs/redis.log"/g' redis.conf     
 4 sed -i 's/# save ""/save ""/g' redis.conf         
 5 sed -i 's/appendonly no/appendonly yes/g' redis.conf      
 6 sed -i 's/dir .//dir "/opt/redis/data/"/g'redis.conf          
 7 
 8 # SLOWLOG GET or SLOWLOG GET number
 9 sed -i 's/slowlog-log-slower-than 10000/slowlog-log-slower-than 5000/g' redis.conf
10 sed -i 's/slowlog-max-len 128/slowlog-max-len 1000/g' redis.conf
12 echo "slaveof 10.135.40.118 6379" >> redis.conf                        #指定master节点
13 
14 # -- sentinel.conf
15 echo 'daemonize yes' >> sentinel.conf        
16 echo 'logfile /opt/redis/logs/sentinel.log' >> sentinel.conf
17 sed -i 's/sentinel monitor mymaster 127.0.0.1 6379 2/sentinel monitor mymaster 10.135.40.118 6379 2/g' sentinel.conf      

 

5、配置文件改进实现今后运营redis服务,从master早先运行,全部节点的开发银行情势和下令都以千篇风流罗曼蒂克律的。

1 启动redis服务和sentinel服务:
2 [[email protected] redis]# /opt/redis/bin/redis-server /opt/redis/conf/redis.conf
3 [[email protected] redis]# /opt/redis/bin/redis-sentinel /opt/redis/conf/sentinel.conf
4 查看服务进程状态:
5 [[email protected]108 redis]# ps -ef | grep redis
6 root      10024   9807  0 17:14 pts/0    00:00:00 grep redis
7 root      68378      1  0 Jul28 ?        01:30:09 /opt/redis/bin/redis-sentinel *:26379                      
8 root      68379      1  0 Jul28 ?        00:35:16 /opt/redis/bin/redis-server *:6379 

6、测试

1>.测验数据同步

 1 主redis写入数据:
 2 [[email protected]118 redis]# redis-cli -p 6379
 3 127.0.0.1:6379> set name abc
 4 OK
 5 127.0.0.1:6379> get name
 6 "abc"
 7 127.0.0.1:6379>
 8 从redis读取数据:
 9 [[email protected]117 redis]# redis-cli -p 6379
10 127.0.0.1:6379> get name
11 "abc"
12 127.0.0.1:6379>
13 从redis读取数据:
14 [[email protected]119 redis]# redis-cli -p 6379
15 127.0.0.1:6379> get name
16 "abc"
17 127.0.0.1:6379>

2>.redis暗中认可是读写分离的,唯有master能写,slave只好读:

1 [[email protected]117 ~]# redis-cli -p 6379
2 127.0.0.1:6579> set name 123
3 (error) READONLY You can't write against a read only slave.

这里可阅览,slave节点私下认可唯有读的权柄,不能够进行写入操作。

7、sentinel一些下令介绍 要利用sentinel的通令,大家需求用redis-cli命令步向到sentinel:

[[email protected]108 redis]# redis-cli -h 10.135.40.118 -p 26379
①INFO  sentinel的基本状态信息 
②SENTINEL masters  列出所有被监视的主服务器,以及这些主服务器的当前状态 
③SENTINEL slaves  列出给定主服务器的所有从服务器,以及这些从服务器的当前状态 
④SENTINEL get-master-addr-by-name  返回给定名字的主服务器的 IP 地址和端口号 
⑤SENTINEL reset  重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel 。 
⑥SENTINEL failover  当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新

 

8、假如master节点宕机,会从两台slave中活动选举出一台机械接替master剧中人物。中期假如老的master节点重新苏醒,重新参与集群中,也只能是salve节点。

sentinel 哨兵格局,redissentinel 一、sentinel介绍 Sentinel效用: 1卡塔尔(قطر‎:Master状态检测2卡塔尔:如若Master分外,则交易会开Master-Slave切换,将内部一个...

本文由68399皇家赌场发布于集成介绍,转载请注明出处:哨兵模式

关键词: 68399皇家赌场

上一篇:进程和线程

下一篇:没有了

最火资讯