Redis集群怎么进行故障检测?

互联网 20-6-30

Redis集群进行故障检测的方法:首先修改Python脚本,每隔1s写入一条数据;然后循环往Redis集群中写入数据,并强制杀掉一个主节点观察应用程序连接情况;最后重启宕机的8001节点即可。

Redis集群进行故障检测的方法:自动故障转移测试

修改Python脚本,每隔1s写入一条数据,目的是便于观察在主节点宕机,集群自动故障转移这个时间段之之内(1s钟左右),对于应用程序的影响,或者说应用程序在自动故障转移前后的表现。

相关学习推荐:redis视频教程

import timefrom time import ctime,sleepfrom rediscluster import StrictRedisCluster startup_nodes = [     {"host":"111.231.253.***", "port":8001},     {"host":"111.231.253.***", "port":8002},     {"host":"111.231.253.***", "port":8003},     {"host":"111.231.253.***", "port":8004},     {"host":"111.231.253.***", "port":8005},     {"host":"111.231.253.***", "port":8006} ] redis_conn= StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True,password="root")for i in range(0, 100000):    try:         redis_conn.set('name' + str(i), str(i))        print('setting name' + str(i) +"--->" + time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))         time.sleep(1)    except:        print("connect to redis cluster error")         time.sleep(2)

发现在杀掉主节点之后,仅发生了一次连接错误,随后因为Redis集群的自动故障转移成功,对应于程序来说是透明的,因此应用程序随后正常工作,不受其中一个主节点宕机的影响。

集群此时的状态,8001节点宕机,明显,8001对应的从节点8004接管主节点,升级为master,对外提供服务

观察升级为主节点的8004实例日志,会发现在强制杀掉原8001主节点之后,1秒钟之内,成功替代8001升级为master节点如果在故障转移的过程中,没有应用程序访问Redis,应用程序甚至完全不知道Redis集群发生了故障转移,只要不发生集群中某一个节点的主从节点同时宕机,整个集群就没有问题,且对应用程序完全透明。

随后重启宕机的8001节点,会发现8001节点自动变为其原从节点(8004)的从节点

以上就是Redis集群怎么进行故障检测?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 故障检测
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Redis与Memcache的区别有哪些

相关资讯