集群选主完成后,从节点需要从主节点同步数据。
一、快照数据
同步的快照数据是描述注册中心的服务信息。
- registry: 每个服务对应的实例;
- versions:每个服务的版本信息;
- timestamps:每个服务的时间戳;
- version:当前服务版本信息;
![](https://file.jishuzhan.net/article/1785657793177456642/c530a3582612f72a642bba74cc3e7c43.webp)
二、主从数据同步
在定时任务中,依次执行:服务状态更新,集群选主,主从数据同步。
![](https://file.jishuzhan.net/article/1785657793177456642/53829fc564cec506fffd5549ff10ebce.webp)
当前节点不是主节点,并且版本信息小于主节点的版本,就认为是从节点,就需要从主节点同步数据,以保证整个集群对外数据的一致性。
发起http请求,获取快照数据,然后根据快照数据恢复到当前从节点注册中心数据。
![](https://file.jishuzhan.net/article/1785657793177456642/1df2bf5307943736c0f58d15a40e8de4.webp)
恢复数据的逻辑就是清空,再添加。
![](https://file.jishuzhan.net/article/1785657793177456642/9b8eedb43b018421149cdf8591e4226b.webp)
三、测试
依次启动8084、8085、8086,主节点是8084,从节点是8085和8086。
向主节点8084注册服务
![](https://file.jishuzhan.net/article/1785657793177456642/a95ec71f998f0efbc11d49bc712ff8a7.webp)
从节点8086也能查询到服务,说明主从数据同步成功。
![](https://file.jishuzhan.net/article/1785657793177456642/1d47e60c445b5fe293b3ec557999efc6.webp)