您的位置:首页 > 数据库 > Redis

基于zookeeper的redis高可用

2016-04-12 10:00 691 查看
 首先这不是为了具体说明每一步怎么实现,只是为了记录这个高可用的思路。
  1.实验到目的:redis中主从关系master和多个slave,当master挂掉后,可以自动切到其他的slave上,让这个slave作为新的master。
  2.实现思路:
          a.服务端代码:每个redis服务器上分别运行一个java工程,工程的目的是:
                i.将本机的redis信息(ip + redis访问端口)注册到zookeeper指定的目录中
               ii.将redis在zookeeper中的注册节点放入nodeList链表中,并将有序链表的第一个节点指定为master,其他的节点slaveof 。
               iii.while(true)循环向redis的地址发出ping请求,返回pong则是正常,如果连续3次不是pong则删除zookeeper中本节点的注册信息。
               iV.删除节点后(zookeeper会监控这些注册信息,并更新nodeList)再次指定nodeList中第一个节点为master,其他的slaveof。
               V.当一个节点重启后,ping命令再次返回pong,这时,判定nodeList中是否 已经存在注册信息。再次在zookeeper中创建节点。
          b.客户端代码:从nodeList中得到第一个节点的信息,Jedis访问redis。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: