很极端场景会出现脑裂
什么是分布式的脑裂
怎么理解zk脑裂
就是ZK,与客户端可能因为网络原因,客户端A还在跑着后续程序,而zk与客户端之前的心跳断了,此zk就把这节点给删除了,这时另一个客户会加锁成功,就样其实分布式锁就失败了。
怎么处理脑裂
像zk可能要修改原代码,完善加锁的机制,比如谁加的锁,谁删的锁等。这样就很复杂。
像redis的, 比如当主从都加上锁才算加上锁,而不是主加上锁就算加上锁,如果主加上锁,数据还没同步过去,这时主挂了,从变成主节点,这时是没有这把锁的
就是ZK,与客户端可能因为网络原因,客户端A还在跑着后续程序,而zk与客户端之前的心跳断了,此zk就把这节点给删除了,这时另一个客户会加锁成功,就样其实分布式锁就失败了。
像zk可能要修改原代码,完善加锁的机制,比如谁加的锁,谁删的锁等。这样就很复杂。
像redis的, 比如当主从都加上锁才算加上锁,而不是主加上锁就算加上锁,如果主加上锁,数据还没同步过去,这时主挂了,从变成主节点,这时是没有这把锁的
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/978156.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!