zoukankan      html  css  js  c++  java
  • redis2.6高可用方案【1】

    Redis Sentinel是一个被设计用来管理redis实例的系统。它用来完成如下的三个任务:

    • 监控    Redis Sentinel会不间断检查redis的master和slave是否如你预期一样的工作。
    • 通知    一旦被Redis Sentinel监控的任何一个redis服务实例发生错误,它能够通知系统管理员,或者另一个节点上的服务进程,通信渠道和调用redis服务的API.
    • 故障自动转移  如果master没有正常的工作,Sentinel将提升一个slave成为master,并在新master上启动后备服务程序,而其他的slave则重新配置为使用新的master,并通知正在使用redis server的程序新的master连接地址。

    Redis Sentinel是一个分布式系统,这意味着,通常你想在你的设备上运行多个Sentinel 进程,这些进程将使用相同的通信协议以传递master down的信息并将master转移到后备系统。

    Redis Sentinel作为一个独立的可执行文件称为redis-sentinel但实际上它是一种特殊的执行模式Redis服务器,也可以使用--sentinel选项调用正常redis-sever可执行。

    警告:Redis Sentinel目前工作进展顺利。本文档描述了如何使用我们已经实现,并可能改变为铁卫军实现发展。Redis哨兵兼容Redis 2.4.16或更大,和Redis 2 6 0将或更大。

    运行Sentinel

    如果你有redis-sentinel可运行文件(或者一个到redis-server可执行文件的链接),你可以使用如下的命令启动Sentinel

    redis-sentinel /path/to/sentinel.conf

    或者你直接运行redis-server在Sentinel模式

    redis-server /path/to/sentinel.conf --sentinel

    以上二者的效果是一样的。

    配置Sentinel

    Redis的源代码分发包含一个文件称为sentinel.conf这是一个示例配置文件可以用它来配置Sentinel但是一个典型的最小配置文件如下所示

    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 60000
    sentinel failover-timeout mymaster 900000
    sentinel can-failover mymaster yes
    sentinel parallel-syncs mymaster 1
    
    sentinel monitor resque 192.168.1.3 6380 4
    sentinel down-after-milliseconds resque 10000
    sentinel failover-timeout resque 900000
    sentinel can-failover resque yes
    sentinel parallel-syncs resque 5

    第一行是用来告诉Redis的监控的master名字叫做mymaster,地址为127.0.0.1,端口6379,在协议层次需要2个sentinel对处于失效状态的master进行扫描(如果不能达成协议不启动故障转移)。

    其他选项几乎都是这样的形式:

    sentinel <option_name> <master_name> <option_value>

    用于以下目的:

    •     down-after-milliseconds的含义是当一个sentinel以毫秒为单位的时间段内无法达到一个实例时(或者实例不答复PINGs亦或者答复错误)它就认为实例已经关闭所需要的时间值。当实例无正确响应时间超过这个时间时,Sentinel将会将实例标识为subjectively down状态,然而此时并不足以进行故障自动转移。如果有足够多的sentinel实例认为被检测实例存在subjectively down状态,然后该实例被标记为objectively down状态。而做出判断的sentinel实例的数量取决于master上的配置文件中设置的数量。
    • can-failover用来决定一个sentinel是否在实例处于objectively down状态时启动故障转移。你可以配置所有Sentinels执行故障切换如果需要的话你还可以配置为只用几个哨兵达成协议另一些实际负责执行故障转移
    • parallel-syncs slave的集群可以在故障自动转移后被同时重新配置为连接新的master。数字越低,需要花费更多的时间才能够把故障转移过程完成但是如果配置为slave提供旧数据可能不希望同时与新master同步所有的slave复制过程大多阻断slave,将会有一个时间段停止从master同步数据。(存在问题的翻译)
    • 如你希望每次只有一个slave不可用,确保将此选项设置为1的值

    其他的配置项在sentinel.conf的示例文件中。



  • 相关阅读:
    silverlight 跨域文件位置
    Asp.net弹出新窗口,获得返回值
    开通CNblog咯。
    访问IIS元数据库失败
    li可以显示多列
    [转]vs2005 sp1 下载地址、安装方法更新非常慢
    英特尔未来教育核心课程
    很好用的软键盘
    CMD里显示彩色文字
    将输入的中文按要求翻译成拼音
  • 原文地址:https://www.cnblogs.com/AI001/p/3996925.html
Copyright © 2011-2022 走看看