集群间通信的消息类型
1. 数据同步型
消息类型 |
发送方-->接收方 |
说明 |
DIFF,13 |
Leader-->learner |
通知Learner服务器,leader即将与其进行DIFF方式的数据同步 |
TRUNC,14 |
Leader-->learner |
触发Learner进行内存数据库的回滚操作 |
SNAP,15 |
Leader-->learner |
leader即将与其进行”全量“数据同步 |
UPTODATE,12 |
Leader-->learner |
告诉Learner服务器已经完成了数据同步,可以开始对外提供服务了 |
2. 服务器初始化型
消息类型 |
发送方-->接收方 |
说明 |
OBSERCERINFO,16 |
Observer-->Leader |
Observer在启动时发给Leader注册自己,消息中包含SID和自己已处理的最新ZXID |
FOLLOWERINFO,11 |
Follower-->Leader |
Followerr在启动时发给Leader注册自己,消息中包含SID和自己已处理的最新ZXID |
LEADERINFO,17 |
Leader-->Learner |
Learner连上leader后,leader发送leaderinfo,包含最新的EPOCH值 |
ACKEPOCH,18 |
Learner-->Leader |
Learner在收到LEADERINFO后,将自己最新的ZXID和EPOCH发给leader |
NEWLEADER,19 |
Leader-->Learner |
数据同步时,Leader向Learner发送一个阶段性的标识信息 |
3. 请求处理型
消息类型 |
发送方-->接收方 |
说明 |
REQUEST,1 |
Learner-->Leader |
follower将事务请求已REQUEST协议形式转发给Leader进行处理 |
PROPOSAL,2 |
Leader-->Follower |
leader将事务请求以PROPOSAL消息形式发给所有Follower进行事务日志的记录 |
ACK,3 |
Follower-->Leader |
Follower记录完事务日志后,将ACK反馈给Leader |
COMMIT,4 |
Leader-->Follower |
leader告知所有Follower进行事务提交 |
INFORM,8 |
Leader-->Observer |
在commit阶段,Leader值需要发送一个COMMIT消息,Follower就可根据已有的事务日志完成提交了;但是对于Observer则需要发送完整的消息 |
SYNC,7 |
Leader-->Learner |
用于通知Learner已经完成了Sync操作 |
4. 会话管理型
消息类型 |
发送方-->接收方 |
说明 |
PING,5 |
Leader-->Learner |
Leader定期向Learner发送PING请求,Learner将自己连接的客户端列表发送给Leader,由Leader逐个对这些客户端进行激活 |
REVALIDATE,6 |
Learner-->Leader |
客户端重连过程中,新的服务器需要向Leader发送改消息确认会话是否已超时 |
原文地址:https://www.cnblogs.com/Desneo/p/7611092.html