Cassandra使用反熵协议中的push-pull模式在节点之间进行状态信息的交换,每个节点有版本一说,每个节点每秒执行一次同步过程,过程如下:
A节点随机选取3个节点来进行信息同步,1个是随机选取的节点,1个是随机的种子节点,1个是随机选择的不可达节点,假设三个节点的名称都是B
1、A首先发送自己的状态摘要信息给B ,即GossipDigestSynMessage,我把他简称SYN
2、B收到后,把摘要和自己的进行对比,把比自己新的信息的摘要信息和自己比A新的完整信息(不是摘要)发送给A,即GossipDigestAckMessage,我把它简称为ACK
3、A收到后,保存比自己新的信息,然后把B想要更新的信息发送给B,即GossipDisgesAck2Message,我把他简称ACK2
如下图:左边为gossip一次更新,右边为TCP3次握手,进行对比记忆
网友评论