zookeeper和eyreka区别
zookeeper:分布式协调服务。保证数据(配置数据。状态数据。)
RDBMS ==>关系型数据库(mysql oracle sqlserver)遵循原则ACID原则(A原子性C一致性﹔独立性d持久性)
Nosql ==>(redis , es,mogodb非关系型数据库)遵循原则CAP原则(C一致性﹐A可用性p分区容错性)
在分布式领域有一个很著名一个CAP定理:
C数据一致性
A服务可用性
p分区容错性
在这个特性中在任何分布式系统中只能保证两个
—致性和可用性矛盾的?答案可能会出现通讯失败问题。
在上面场合可用性高于—致性?
总结:
CAP理论也就是说在分布式存储系统中。最多只能实现以上2点由于网络延迟故障会导致丢包的问题。所有我们分区容错性。必须要实现的。也就是
说。nosql数据p肯定有我们只能在一致性和可用性中进行选择。没有nosql数据能同时保证3点。
提出—个想法?淘宝双十—业务?ap cp
zookeeper保证CP
服务注册功能对可用性要求高于一致性。,当master节点因为网络故障时区练习。剩余节点会重新进行选举投票选出leader。问题在与在选举的时候时间太长。30s- 120s在这个选举的期间。zk集群是不可用的。
Eureka保证AP
Eureka各个节点都是平等。只要有一台在就能保证注册服务可用性。只不过查到的信息可以能不是最新的。(不能保证数据强一致性)
Eureka还有一中自我保护机制。如果在15分钟之内超过80的节点都没有正常心跳。
Eureka不在从注册表中移除信息。因为长时间没有心跳
因此Eureka可以很好的应对网络故障导致的部分节点失去联系的情况。而不会想zookeeper那样使整个注册服务瘫痪。