zoukankan      html  css  js  c++  java
  • redis faliover 不保证数据一致性

    Testing the failover
    
    
    注意: 在这个测试,你应该打开一个标签 让一致性测试应用程序运行
    
    为了了解故障转移,简单的事情是我们这么做()是单个进程崩溃,在我们的例子中是单个主进程
    
    我们可以通过以下命令是被master 并使其崩溃:
    
    192.168.137.4:7004> CLUSTER nodes
    9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master - 0 1583521243434 18 connected 0-5460
    3c6510bd29af80703ae7c0be5a5884caaa60cd4e 192.168.137.2:7001@17001 slave a7287834bc7db37249614d23e06ed8f9a6c7b3d3 0 1583521243000 14 connected
    bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1583521243936 19 connected 5461-10922
    1b83e27acd5235726aea44702526a8ca0ede9a48 192.168.137.2:7000@17000 slave 9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 0 1583521242520 18 connected
    a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 myself,master - 0 1583521242000 14 connected 10923-16383
    191d7306b81ffa85b5837898562eb6bf1479122c 192.168.137.3:7002@17002 slave bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 0 1583521243231 19 connected
    192.168.137.4:7004> 
    192.168.137.4:7004> CLUSTER info
    cluster_state:ok
    
    node3:/root/cluster/7005#redis-cli  -h 192.168.137.4 -p 7004 -c cluster nodes | grep master
    9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master - 0 1583521306528 18 connected 0-5460
    bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1583521304504 19 connected 5461-10922
    a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 myself,master - 0 1583521302000 14 connected 10923-16383
    
    
    因此7003 7004 7005 是masters,让我们crash 节点7003 使用DEBUG SEGFAULT command:
    node3:/root/cluster/7005#redis-cli -h 192.168.137.3  -p 7003  "info"  | grep role
    role:master
    
    redis-cli -h 192.168.137.3  -p 7003 debug segfault
    
    
    node3:/root/cluster/7005#redis-cli -h 192.168.137.3  -p 7003 debug segfault
    Error: Server closed the connection
    node3:/root/cluster/7005#redis-cli  -h 192.168.137.4 -p 7004 -c cluster nodes | grep master
    
    9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master,fail - 1583521519531 1583521517516 18 disconnected 0-5460
    bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1583521525104 19 connected 5461-10922
    a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 myself,master - 0 1583521524000 14 connected 10923-16383
    
    
    正如你看到的 在failover系统时是不能接受578个读和577个写的,
    
    然而数据库中没有创建一致性 
    
    这个可能听起来有些出乎意外, 因为在第一个章节 我们
    
    说明 Redis Cluster 可能丢失写在failover期间,因为它使用异步复制 
    
    我们没有说的是,这种情况不太可能发生,因为Redis将应答发送给客户端,并将复制的命令发送给从机,大约在同一时间,因此会有一个非常小的窗口丢失数据。然而,很难触发并不意味着它是不可能的,所以这不会改变Redis集群提供的一致性保证。
    
    我们现在可以检查故障转移后的集群设置  
    
    (注意 同时 我重启了crashed的实例 重新加入集群作为slave)
    
    
    node3:/root/cluster/7005#redis-cli  -h 192.168.137.4 -p 7004 -c cluster nodes 
    9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 slave 1b83e27acd5235726aea44702526a8ca0ede9a48 0 1583521963360 20 connected
    3c6510bd29af80703ae7c0be5a5884caaa60cd4e 192.168.137.2:7001@17001 slave a7287834bc7db37249614d23e06ed8f9a6c7b3d3 0 1583521961858 14 connected
    bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1583521962351 19 connected 5461-10922
    1b83e27acd5235726aea44702526a8ca0ede9a48 192.168.137.2:7000@17000 master - 0 1583521962000 20 connected 0-5460
    a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 myself,master - 0 1583521962000 14 connected 10923-16383
    191d7306b81ffa85b5837898562eb6bf1479122c 192.168.137.3:7002@17002 slave bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 0 1583521962353 19 connected
    
    
    
    
    
    
    
    
  • 相关阅读:
    bootstrap按钮
    bootstrap输入框组
    bootstrap单选
    bootstrap复选框
    bootstrap输入框
    bootstrap浮动
    HO引擎近况20201017
    C#.NET项目中引用EXCEL报错的问题
    MATLAB实例:读取Fashion MNIST数据,保存为.mat文件,并展示部分样例
    MATLAB实例:BP神经网络用于回归任务
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348520.html
Copyright © 2011-2022 走看看