zookeeper+redis高可用集群思路
2016-03-10 14:40
441 查看
首先这不是为了具体说明每一步怎么实现,只是为了记录这个高可用的思路。
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。。。
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。。。
相关文章推荐
- redis类型[string 、list 、 set 、sorted set 、hash]
- redis下载和学习
- redis3.0 centos6.5 集群安装 遇到的问题
- php session保存在redis中
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- redis内存分析
- python redis 下载
- jedis调用redis之pubsub
- jedis调用redis之总结
- redis使用watch秒杀抢购思路
- jedis调用redis之pipeline
- Redis 实践
- Redis学习-配置认证密码
- Redis简单介绍
- Spring Framework 中启动 Redis 事务操作
- Redis作者谈Redis应用场景
- 第四章 Redis数据类型之Set
- 第五章 Redis数据类型之Hashes