《我想进大厂》之Zookeeper夺命连环9问 (3)

因为Zookeeper是过半成功即代表成功,假设我们有5个节点,如果123节点写入成功,如果这时候请求访问到4或者5节点,那么有可能读取不到数据,因为可能数据还没有同步到4、5节点中,也可以认为这算是数据不一致的问题。

解决方案可以在读取前使用sync命令。

 

leader未发送proposal宕机

这也就是数据同步说过的问题。

leader刚生成一个proposal,还没有来得及发送出去,此时leader宕机,重新选举之后作为follower,但是新的leader没有这个proposal。

这种场景下的日志将会被丢弃。

 

leader发送proposal成功,发送commit前宕机

如果发送proposal成功了,但是在将要发送commit命令前宕机了,如果重新进行选举,还是会选择zxid最大的节点作为leader,因此,这个日志并不会被丢弃,会在选举出leader之后重新同步到其他节点当中。

 

如果作为注册中心,Zookeeper 和Eureka、Consul、Nacos有什么区别?   Nacos Eureka Consul Zookeeper
一致性协议   CP+AP   AP   CP   CP  
健康检查   TCP/HTTP/MYSQL/Client Beat   Client Beat   TCP/HTTP/gRPC/Cmd   Keep Alive  
负载均衡策略   权重/ metadata/Selector   Ribbon   Fabio    
雪崩保护          
自动注销实例   支持   支持   不支持   支持  
访问协议   HTTP/DNS   HTTP   HTTP/DNS   TCP  
监听支持   支持   支持   支持   支持  
多数据中心   支持   支持   支持   不支持  
跨注册中心同步   支持   不支持   支持   不支持  
SpringCloud集成   支持   支持   支持   不支持  
Dubbo集成   支持   不支持   不支持   支持  
K8S集成   支持   不支持   支持   不支持  

 

最后,你对于CAP理论怎么理解?

CAP是一个分布式系统设计的定理,他包含3个部分,并且最多只能同时满足其中两个。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydgsd.html