Nacos Committer 张龙:Nacos Sync 的设计原理和规划


与你同行,抬头便是星空。

本文整理自Nacos Committer 张龙的现场分享,阿里巴巴中间件受权发布。

随着 Nacos 1.0.0 稳定版的发布,越来越多的企业开始在测试/预演/生产环境中逐步部署 Nacos。目前,除了部分企业已处于转型分布式架构 香港云主机的过程中,会考虑直接使用 Nacos 上生产,但仍有不少企业会考虑一些比较现实的问题:

这里,我将通过对 Nacos Sync 的介绍,来回答这三个问题。

Nacos Sync 是一个支持多种注册中心的同步组件,基于 SpringBoot 开发框架,数据层采用 Spring Data JPA,遵循了标准的 JPA 访问规范,支持多种数据源存储,默认使用 Hibernate 实现,更加方便的支持表的自动创建更新。

下图是 Nacos Sync 系统的概念图,Nacos Sync 通过从各个注册中心拉取注册的服务实例数据同步到 Nacos,左右两边是不同的注册中心,绿色代表目前是可以进行双向同步的,蓝色代表暂时只能进行单向同步。

组件特性

Nacos Sync 使用了高效的事件异步驱动模型,支持多种自定义事件,使得同步任务处理的延时控制在3s,8C16G的单机能够支持6K的同步任务。

除了单机部署,Nacos Sync 也提供了高可用的集群部署模式,作为无状态设计,支持将任务等状态数据迁移到了数据库,使得集群扩展非常方便。

下图是 Nacos Sync 目前的系统架构图,画的比较简单,只是把一些比较重要的模块做了描述。


Web Console:

提供给用户进行注册中心和同步任务进行相关界面操作


Processor Frame:

注册中心和任务的业务处理逻辑


Timer Manager:

定时轮询数据库获取同步任务进行处理


Event Frame:

异步事件来进行同步任务的同步以及删除


Extension:

对接各种注册中心客户端的扩展实现

我们来看一下 Nacos Sync 一次完整的调用流程:

通过 Web 控制台添加相关注册中心,一般都必须配置两个注册中心,一个源注册中心,另外一个是目标注册中心,注册中心相关数据会写入到数据库;

下面的表格介绍了目前支持的几种同步类型,并且说明了在 Dubbo 和 Spring Cloud 下是否支持同步,表格中列举的几种注册中心,无论单向还是双向同步都是在和 Nacos 进行交互


使用场景和 Demo

这里提供两个 Demo ,用来分别演示上面的两个经典使用场景,详细的操作步骤可以通过下方链接,进行访问。


单向同步场景,在 Spring Cloud 生态中,Eureka 同步到 Nacos 示例


https://


os-sync-example/tree/master/one-way-sync


https://


os-sync-example/tree/master/two-way-sync


Nacos Sync 目前已经发布3个小版本,通过下图,我们可以看到每个版本已经做了的一些工作,以及下个版本即将做的一些事情。


0.4.0 规划介绍

同步数据一致性校验,0.4.0版本前,同步任务执行之后,双端数据一致性未进行检查的;

注册中心健康检查;

同步数据实时状态透出 ,0.4.0版本前,控制台的任务状态是数据库的任务执行状态,用户没办法知道当前的数据状态;

任务批量删除;

多维度增加任务同步,优化只支持服务粒度,用户只能一个一个添加的用户体验

原文链接

本文为云栖社区原创内容,未经允许不得转载。

相关推荐: ES6的Set、Map、Symbol怎么用

本篇内容主要讲解“ES6的Set、Map、Symbol怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6的Set、Map、Symbol怎么用”吧!  set 数据结构,可以了解为集合,与数组相似,内部的成员…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/24 17:22
下一篇 07/24 17:22

相关推荐