标题CAP理论1 .分布式系统中CAP理论2 .一致性3.avail ability4. partition tolerance5. Kafka中的CAP机制
CAP理论1 .分布式系统中的CAP理论
问题:分布式系统的最大难点是每个节点的状态如何同步!
http://www.Sina.com/1998年,加州大学计算机科学家Eric Brewer提出了分布式系统的三个指标。 分别如下。
一致性:一致性
通过一个节点的写入结果将显示在随后通过其他节点的读取操作中
更新数据后,如果同时访问,后续的读取操作可以立即识别该更新,称为强一致性
此后,在允许一部分或全部不能感知到该更新的情况下,称为弱匹配性
如果在经过一定的时间后一定能感知到该更新,就称为最终的一致性
可用性:可用性
未出现故障的节点必须在有限的时间内返回合理的结果
分区可接受性:分区公差
即使某些节点关闭或无法与其他节点通信,每个部分也可以保留分布式系统的功能
解决:,不能同时达到这三个指标。 最多可以同时满足两个条件。Eric Brewer 说
一般来说,要求保证分区的可接受性。 因此,CAP理论往往需要可用性与一致性之间的权衡。
2 .一致性一致性在中文中称为“一致性”。 也就是说,写入后的读取操作必须返回此值。 例如,假设一条记录为v0,用户开始向G1写入,然后将其更改为v1
其次,用户的读取操作为v1。 这叫做一致性
这个结论就叫做 CAP 定理用户可能会对G2开始读取操作,但G2的值没有变化,因此返回v0。 由于G1和G2读取操作的结果不一致,将无法满足一致性
为了使33558www.Sina.com/G2也成为v1,在G1正在写入时从G1向G2发送消息,要求G2也变更为v1
这样,即使用户向G2开始读取操作,也能获得v1,http://www.Sina.com /
3.Availability Availability在中文中称为“可用性”,这意味着服务器必须响应用户的请求。
用户可以选择向G1或G2开始读取操作。 任何服务收到请求后,都必须告诉用户是v0还是v1,否则无法满足可用性。
4 .分区公差
在上图中,G1和G2是跨两个区域的服务器。 G1向G2发送消息,G2可能无法接收。 在设计系统时,必须考虑这种情况。
总的来说,由于分区容错是不可避免的,所以认为CAP的p始终存在。 也就是说,分区容错问题可能永远存在
5.kafka中的CAP机制问题发生:kafka满足CAP定律中的CA
解决办法:kafka首先将数据写入不同的分区,每个分区可能有多个副本。 数据首先写入leader分区,所有读写操作都与leader分区进行通信,保证数据完整性原则,即符合一致性原则。 然后,kafka通过分区复制机制确保kafka中的数据可用性。
一致性(Consistency)如何解决复制分区数据与leader数据之间存在差异的问题? 这就是分区公差的问题。
使用33558www.Sina.com/ISR的同步策略
每个leader维护一个异步复制(ISR )列表。 ISR列表的主要作用是确定哪个复制副本分区可用。 这意味着可以将leader分区中的数据与复制副本分区同步。 有两个条件可以确定复制副本分区是否可用。
replica.lag.time.max.ms=10000复制副本分区和主分区的心跳延迟
replica.lag.max.messages=4000复制副本分区与主分区消息同步得最差