# springboot-demo **Repository Path**: chaoren5789/springboot-demo ## Basic Information - **Project Name**: springboot-demo - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-23 - **Last Updated**: 2023-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README CAP理论是分布式架构中重要理论 一致性(Consistency) (所有节点在同一时间具有相同的数据) 可用性(Availability) (保证每个请求不管成功或者失败都有响应) 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作) Zookeeper -> CP Consul -> CP 保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单 Eureka -> AP Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为注册中心出现了网络故障 1、Eureka不再从注册表中移除因为长时间没有收到心跳而过期的服务; 2、Eureka仍然能够接受新服务注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用); 3、当网络稳定时,当前实例新注册的信息会被同步到其它节点中 Nacos -> AP + CP ##### Raft:日志复制的一致性算法 5个服务器系统容忍两个故障 每个服务器都处于以下三种状态之一,领导者(Leader),追随者(Follower)或候选人(Candidate)。 在正常情况下,只有一个服务器是领导人,剩下的服务器是追随者。 追随者们是被动的:他们不会发送任何请求,只是响应来自领导人和候选人的请求 #### Raft选举 如果追随者没有收到任何消息,它会成为一个候选人并开始一次选举。收到大多数服务器投票的候选人会成为新的领导人 每一个任期的开始都是一次选举(election),一个或多个候选人会试图成为领导人。 如果一个候选人赢得了选举,它就会在该任期的剩余时间担任领导人。 在某些情况下,选票会被瓜分,有可能没有选出领导人,那么,将会开始另一个任期,并且立刻开始下一次选举。