RDBMS==>(MySql,Oracle,SqlServer等关系型数据库)遵循的原则是:ACID原则(A:原子性。C:一致性。I:独立性。D:持久性。)。
NoSql==> (redis,Mogodb等非关系型数据库)遵循的原则是:CAP原则(C:强一致性。A:可用性。P:分区容错性)。
CAP理论也就是说在分布式存储系统中,最多只能实现以上两点。而由于当前网络延迟故障会导致丢包等问题,所以我们分区容错性是必须实现的。也就是NoSqL数据库P肯定要有,我们只能在一致性和可用性中进行选择,没有Nosql数据库能同时保证三点。(==>AP 或者 CP)
Eureka和zookeeper进行比较
分布式基础:CAP理论(C:数据一致性。(Consistency)A:服务可用性。(Availability)P:分区容错性(Partition tolerance))
zookeeper主要保证CP特性
Eureka主要保证AP特性
Zookeeper的设计理念就是分布式协调服务,保证数据(配置数据,状态数据)在多个服务系统之间保证一致性,这也不难看出Zookeeper是属于CP特性(Zookeeper的核心算法是Zab,保证分布式系统下,数据如何在多个服务之间保证数据同步)。Eureka是吸取Zookeeper问题的经验,先保证可用性。
Eureka为什么注册慢?
Eureka注册慢的根本原因是在于Eureka要保证AP特性
Eureka client 延迟注册,默认30秒
Eureka server的响应缓存,默认30秒
Eureka server的缓存刷新,默认30秒
最极端最慢是90秒
Eureka的自我保护
Eureka server会自动更新续约更新阀值
Eureka server续约更新频率低于阀值则进入保护模式
自我保护模式下Eureka server不会剔除任何注册信息