脑裂发生时,如果有客户端请求怎么办

来源:6-8 -脑裂问题

张zixin

2020-06-12

当脑裂发生时,我们已经设置quorum了,例如三个节点,node1发生网络状况,那么node2选举为master节点,node1不会选举为master节点。
1.如果有客户发送修改数据的请求到Node1,怎么处理?
2.如果有客户发送查询数据的请求到Node1,怎么处理?
3.如果有客户发送修改数据的请求到Node2,修改成功之后,那么不同的客户端发送查询请求到Node1和Node2,数据冲突问题怎么处理?
4.如果Node1网络恢复之后,Node1和Node2&3之间如何发现数据是否一致?如果不一致,怎么处理

写回答

1回答

rockybean

2020-06-12

1.如果有客户发送修改数据的请求到Node1,怎么处理?
失败,node1 已经将 node2 和 3 设置为下线,集群无法处理写请求

2.如果有客户发送查询数据的请求到Node1,怎么处理?
不存在的 shard 读取失败。

3.如果有客户发送修改数据的请求到Node2,修改成功之后,那么不同的客户端发送查询请求到Node1和Node2,数据冲突问题怎么处理?
node1 已经无法正常工作,所以不会冲突

4.如果Node1网络恢复之后,Node1和Node2&3之间如何发现数据是否一致?如果不一致,怎么处理
Node1 从 Node2 和 3 同步最新的数据到本地,不会出现不一致的情况。

0
0

Elastic Stack从入门到实践,动手搭建数据分析系统

有了Elastic Stack,不用写一行代码,你也可以玩转大数据分析!

1361 学习 · 397 问题

查看课程