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

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

一、快照数据

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

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

二、主从数据同步

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

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

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

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

三、测试

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

向主节点8084注册服务

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

相关推荐
Wang's Blog2 小时前
Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
微服务·云原生·架构·nestjs
YXWik62 小时前
新版若依微服务增强swagger增强集成knife4j
微服务·云原生·架构
Wang's Blog2 小时前
Nestjs框架: 微服务断路器实现原理与OPOSSUM库实践
运维·微服务·nestjs
深思慎考2 小时前
微服务即时通讯系统(服务端)——文件存储模块全链路设计与实现(3)
linux·微服务·架构·c++项目·聊天系统
山猪打不过家猪5 小时前
【无标题】
微服务
Solar20258 小时前
微服务调用超时:从问题分析到全链路优化实践
微服务·云原生·架构
yours_Gabriel8 小时前
【分布式事务】Seata分布式解决方案
java·分布式·微服务
再难也得平10 小时前
微服务拆分之SpringCloud
java·spring cloud·微服务
敲上瘾11 小时前
Linux系统C++开发环境搭建工具(三)—— brpc使用指南
linux·c++·分布式·rpc
sas-soft12 小时前
短任务占资源、低频 API 耗成本?混合架构方案:微服务扛核心,Serverless 接弹性需求
微服务·架构·serverless