从0到1手写注册中心Registry之主从数据同步

集群选主完成后,从节点需要从主节点同步数据。

一、快照数据

同步的快照数据是描述注册中心的服务信息。

  • registry: 每个服务对应的实例;
  • versions:每个服务的版本信息;
  • timestamps:每个服务的时间戳;
  • version:当前服务版本信息;

二、主从数据同步

在定时任务中,依次执行:服务状态更新,集群选主,主从数据同步。

当前节点不是主节点,并且版本信息小于主节点的版本,就认为是从节点,就需要从主节点同步数据,以保证整个集群对外数据的一致性。

发起http请求,获取快照数据,然后根据快照数据恢复到当前从节点注册中心数据。

恢复数据的逻辑就是清空,再添加。

三、测试

依次启动8084、8085、8086,主节点是8084,从节点是8085和8086。

向主节点8084注册服务

从节点8086也能查询到服务,说明主从数据同步成功。

相关推荐
豆浆D油条8 小时前
QT容器类QList调用erase崩溃
开发语言·qt·rpc
r_oo_ki_e_14 小时前
java微服务
java·微服务
小森林之主1 天前
Docker Compose 紧急救援:凌晨3点服务器报警的解决方案
docker·微服务·容器化·docker compose·故障排除
L-影1 天前
单体与微服务区别
微服务·云原生·架构
cfm_29141 天前
Nacos零基础入门实战
微服务
Swift社区2 天前
AI 为什么越来越像微服务?
人工智能·微服务·架构
怒放de生命20102 天前
【web3基础】go-zero创建rpc服务,创建配置文件(二)
开发语言·rpc·golang·web3
rebibabo3 天前
Java进阶(1) | 微服务入门:从单体到 Spring Cloud 全家桶
spring cloud·微服务·nacos·openfeign·服务注册与发现·java进阶·单体架构
一路向北North3 天前
Spring Security OAuth2.0(23):分布式系统授权-转发明文给微服务
java·spring·微服务
Wang's Blog3 天前
Go-Zero进阶实战2: 使用 Docker Compose 编排与部署微服务
docker·微服务·golang