复述,集群进行故障检测的方法

  介绍

小编给大家分享一下复述,集群进行故障检测的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨方法吧!

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

复述,集群进行故障检测的方法

<强>复述,集群进行故障检测的方法:自动故障转移测试

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

如下脚本循环往复述,集群中写入数据,执行期间,强制杀掉一个主节点,观察应用程序连接情况。
同时,如果发生异常,暂停应用程序2 s,因为上面一开始配置的集群故障转移时间是1 s,如果应用程序暂停2 s,完全可以跳过故障转移的过程,当故障转移完成之后,应用程序又恢复成正常状态,虽然8001节点宕机,应用程序继续连接8001节点,但是应用程序完全无感知。

进口timefrom时间进口ctime sleepfrom rediscluster 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,密码=皉oot")范围(0,100000):我的试题:   redis_conn.set(& # 39;名字# 39;+ str (i), str (i))打印(& # 39;设置名称# 39;+ str (i) +“——→“;+ time.strftime (Y & # 39; % - % m - H % d %: % m: % & # 39;, time.localtime (time.time ())))   time . sleep(1)除了:打印(“连接到复述,集群error")   time . sleep (2)

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

复述,集群进行故障检测的方法

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

复述,集群进行故障检测的方法

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

复述,集群进行故障检测的方法

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

复述,集群进行故障检测的方法

看完了这篇文章,相信你对复述,集群进行故障检测的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

复述,集群进行故障检测的方法