傻大方


首页 > 潮·科技 > >

「Redis-多机功能」Sentinel( 二 )



按关键词阅读:

  • Sentinel节点集合是由若干个Sentinel节点组成的 , 这样即使个别Sentinel节点不可用 , 整个Sentinel节点集合依然是健壮的 。
  • Sentinel节点本身就是独立的Redis节点 , 只不过它们有一些特殊 , 它们不存储数据 , 只支持部分命令 。
    安装和部署下面将以3个Sentinel节点、1个主节点、2个从节点组成一个Redis
    Sentinel进行说明 。
    「Redis-多机功能」Sentinel文章插图
    部署流程Redis Sentinel中Redis数据节点没有做任何特殊配置 , 按照常规方法启动就可以 。 3个Sentinel节点的部署方法是完全一致的(端口不同) , 下面以sentinel-1节点的部署为例子进行说明 。
    配置Sentinel节点// redis-sentinel-26379.conf
    port 26379
    daemonize yes
    logfile "26379.log"
    dir /opt/soft/redis/data
    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 180000
    Sentinel节点的默认端口是26379 ,sentinel monitor mymaster 127.0.0.1 6379 2配置代表sentinel-1节点需要监控127.0.0.1:6379这个主节点 , 2代表判断主节点失败至少需要2个Sentinel节点同意 , mymaster是主节点的别名, 其余Sentinel配置将在以后进行详细说明 。
    启动Sentinel节点Sentinel节点的启动方法有两种:
    1.使用redis-sentinel命令:
    redis-sentinel redis-sentinel-26379.conf
    2.使用redis-server命令加--sentinel参数:
    redis-server redis-sentinel-26379.conf --sentinel
    两种方法本质上是一样的 。
    确认Sentinel节点本质上是一个特殊的Redis节点 , 所以也可以通过info命令来查询它的相关信息 , 从下面info的Sentinel片段来看 , Sentinel节点找到了主节点127.0.0.1:6379 , 发现了它的两个从节点 , 同时发现Redis Sentinel一共有3个Sentinel节点 。 这里只需要了解Sentinel节点能够彼此感知到对方 , 同时能够感知到Redis数据节点就可以了:
    $ redis-cli -h 127.0.0.1 -p 26379 info Sentinel
    sentinel_masters:1
    sentinel_tilt:0
    sentinel_running_scripts:0
    sentinel_scripts_queue_length:0
    master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
    当三个Sentinel节点都启动后 , 整个拓扑结构如图所示 。 至此Redis Sentinel已经搭建起来了 , 整体上还是比较容易的 , 但是有两点需要强调一下:
    1. 生产环境中建议Redis Sentinel的所有节点应该分布在不同的物理机上 。
    2. Redis Sentinel中的数据节点和普通的Redis数据节点在配置上没有任何区别 , 只不过是添加了一些Sentinel节点对它们进行监控 。
    「Redis-多机功能」Sentinel文章插图
    配置优化本节将对每个配置的使用和优化进行详细介绍 。 Redis安装目录下有一个sentinel.conf , 是默认的Sentinel节点配置文件 , 下面就以它作为例子进行说明 。
    配置说明和优化port 26379
    【「Redis-多机功能」Sentinel】dir /opt/soft/redis/data
    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 180000
    sentinel auth-pass
    sentinel notification-script
    sentinel client-reconfig-script
    (1)sentinel monitor格式:
    sentinel monitor
    本配置说明Sentinel节点要监控的是一个名字叫做 , ip地址和端口为的主节点 。 代表要判定主节点最终不可达所需要的票数 。 但实际上Sentinel节点会对所有节点进行监控 , 但是在Sentinel节点的配置中没有看到有关从节点和其余Sentinel节点的配置 , 那是因为 Sentinel节点会从主节点中获取有关从节点以及其余Sentinel节点的相关信息。
    参数用于故障发现和判定 , 例如将quorum配置为2 , 代表至少有2个Sentinel节点认为主节点不可达 , 那么这个不可达的判定才是客观的 。对于设置的越小 , 那么达到下线的条件越宽松 , 反之越严格 。 一般建议将其设置为Sentinel节点的一半加1 。 同时还与Sentinel节点的领导者选举有关 , 至少要有max(quorum , num(sentinels)/2+1)个Sentinel节点参与选举 , 才能选出领导者Sentinel , 从而完成故障转移。 例如有5个Sentinel节点 , quorum=4 , 那么至少要有max(quorum , num(sentinels)/2+1)=4个在线Sentinel节点才可以进行领导者选举 。
    (2)sentinel down-after-milliseconds格式:
    sentinel down-after-milliseconds
    每个Sentinel节点都要通过定期发送ping命令来判断Redis数据节点和其余Sentinel节点是否可达 , 如果超过了down-after-milliseconds配置的时间且没有有效的回复 , 则判定节点不可达 , (单位为毫秒)就是超时时间 。 这个配置是对节点失败判定的重要依据 。


    稿源:(未知)

    【傻大方】网址:http://www.shadafang.com/c/111T31c12020.html

    标题:「Redis-多机功能」Sentinel( 二 )


    上一篇:广域网PPP之PAP及CHAP配置

    下一篇:nacos、ribbon和feign的简明教程