当前位置: 首页 > news >正文

双活工作关于nacos注册中心的数据迁移

最近在做一个双活的项目,在纠结一个注册中心是在双活机房都准备一个,那主机房的数据如果传过去呢,查了一些资料,最终在官网查到了一个NacosSync 的组件,主要用来做数据传输的,并且支持在线替换注册中心的,下来我摘抄一下迁移的流程。原文:

NacosSync 用户手册,在查到这个文档的时候发现nacos也有restful的api,方便可以结合前端组件进行注册中心的数据迁移到内管上,避开上线流程的约束。

准备工作

启动服务之前,你需要安装下面的服务:

  • 64bit OS: Linux/Unix/Mac/Windows supported, Linux/Unix/Mac recommended.
  • 64bit JDK 1.8+: downloads, JAVA_HOME settings.
  • Maven 3.2.x+: downloads, settings.
  • MySql 5.6.+

获取安装包

有两种方式可以获得 NacosSync 的安装包:

  • 直接下载 NacosSync 的二进制安装包:nacosSync.${version}.zip
  • 从 GitHub 上下载 NacosSync 的源码进行构建

Package:

cd nacosSync/
mvn clean package -U

目标文件的路径:

nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip

解压安装包之后,工程的文件目录结构:

解释nacosSync
├── LICENSE
├── NOTICE
├── bin
│   ├── nacosSync.sql
│   ├── shutdown.sh
│   └── startup.sh
├── conf
│   ├── application.properties
│   └── logback-spring.xml
├── logs
└── nacosSync-server.${version}.jar

初始化数据库

系统默认配置的数据库是Mysql,也能支持其他的关系型数据库。 1.建库,缺省的数据库名字为“nacos_Sync”。 2.数据库表不需要单独创建,默认使用了hibernate的自动建表功能。 3.如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下。

数据库配置

数据库的配置文件放在conf/application.properties中:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

启动服务器

$ nacosSync/bin:
sh startup.sh  restart

检查系统状态

1.检查系统日志

日志的路径在nacosSync/logs/nacosSync.log,检查是否有异常信息。

2.检查系统端口

缺省的系统端口是8081,你可以自己定义在application.properties中。

$netstat -ano|grep 8081
tcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)

控制台

访问路径:

http://127.0.0.1:8081/#/serviceSync

在这里插入图片描述

如果检查没有问题,NacosSync 已经正常启动了,NacosSync 的部署结构:
在这里插入图片描述

开始迁移

迁移信息

Dubbo服务的部署信息:
在这里插入图片描述

迁移的服务:

Service NameVersionGroup Name
com.alibaba.nacos.api.DemoService1.0.0zk

添加注册中心集群信息

1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK。
在这里插入图片描述

注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在 NacosSync 重启后,将不会恢复成功。

2.同样的步骤,增加NacosSync集群。
在这里插入图片描述

3.添加完成后,可以在列表中查询到: 在这里插入图片描述

添加同步任务

1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群。
在这里插入图片描述

添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
在这里插入图片描述

2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询。 在这里插入图片描述

3.此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下: 在这里插入图片描述

Dubbo 客户端连接到 Nacos 注册中心

Dubbo Consumer客户端迁移

Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

解释<dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId><version>0.0.2</version>
</dependency>

增加Nacos客户端的依赖:

解释<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>0.6.2</version>
</dependency>

配置Dubbo Consumer的Dubbo配置文件consumer.yaml,让客户端能够找到Nacos集群。

解释spring:application:
name: dubbo-consumer
demo:service:version: 1.0.0group: zk
dubbo:registry:address: nacos://127.0.0.1:8848

不需要修改代码,配置更新完毕之后,你就可以重启你的应用,使之生效了。

Consumer发布完成之后,目前的部署结构如下: 在这里插入图片描述

Dubbo Provider迁移

在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在 NacosSync 中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:在这里插入图片描述

在这里插入图片描述

注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉。

同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤。

新的部署结构

  • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:

在这里插入图片描述

  • 所有的客户端迁移完成之后,部署结构如下:
  • 在这里插入图片描述

现在,Zookeeper集群,NacosSync集群就可以下线了。

注意事项

  • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询。
  • NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可。
  • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步。
  • Dubbo 客户端目前不支持 Nacos 的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适

相关文章:

双活工作关于nacos注册中心的数据迁移

最近在做一个双活的项目&#xff0c;在纠结一个注册中心是在双活机房都准备一个&#xff0c;那主机房的数据如果传过去呢&#xff0c;查了一些资料&#xff0c;最终在官网查到了一个NacosSync 的组件&#xff0c;主要用来做数据传输的&#xff0c;并且支持在线替换注册中心的&a…...

5G NR 信道号计算

一、5G NR的频段 增加带宽是增加容量和传输速率最直接的方法&#xff0c;目前5G最大带宽将会达到400MHz&#xff0c;考虑到目前频率占用情况&#xff0c;5G将不得不使用高频进行通信。 3GPP协议定义了从Sub6G(FR1)到毫米波(FR2)的5G目标频谱。 其中FR1是5G的核心频段&#xff0…...

01-Spring实现重试和降级机制

主要用于在模块调用中&#xff0c;出现失败、异常情况下&#xff0c;仍需要进行重复调用。并且在最终调用失败时&#xff0c;可以采用降级措施&#xff0c;返回一般结果。 1、重试机制 我们采用spring 提供的retry 插件&#xff0c;其原理采用aop机制&#xff0c;所以需要额外…...

docker部署showdoc

目录 安装 1.拉取镜像 2.创建容器 使用 1.选择语言 2.默认账户/密码:showdoc/123456​编辑 3.登陆 4.首页 安装 1.拉取镜像 docker pull star7th/showdoc 2.创建容器 mkdir -p /opt/showdoc/html docker run -d --name showdoc --userroot --privilegedtrue -p 1005…...

2.14作业

1.请编程实现二维数组的杨辉三角。 2.请编程实现二维数组计算每一行的和以及列和。 3.请编程实现二维数组计算第二大值。 4.请使用非函数方法实现系统函数strcat,strcmp,strcpy,strlen. strcat: strcmp: strcpy: strlen:...

01.数据结构篇-链表

1.找出两个链表的交点 160. Intersection of Two Linked Lists (Easy) Leetcode / 力扣 例如以下示例中 A 和 B 两个链表相交于 c1&#xff1a; A: a1 → a2↘c1 → c2 → c3↗ B: b1 → b2 → b3 但是不会出现以下相交的情况&#xff0c;因为每个节点只有一个…...

揭秘产品迭代计划制定:从0到1打造完美迭代策略

产品迭代计划是产品团队确保他们能够交付满足客户需求的产品以及实现其业务目标的重要工具。开发一个成功的产品迭代计划需要仔细考虑产品的目标、客户需求、市场趋势和可用资源。以下是帮助您创建产品迭代计划的一些步骤&#xff1a;建立产品目标、收集客户反馈、分析市场趋势…...

Python进阶--下载想要的格言(基于格言网的Python爬虫程序)

注&#xff1a;由于上篇帖子&#xff08;Python进阶--爬取下载人生格言(基于格言网的Python3爬虫)-CSDN博客&#xff09;篇幅长度的限制&#xff0c;此篇帖子对上篇做一个拓展延伸。 目录 一、爬取格言网中想要内容的url 1、找到想要的内容 2、抓包分析&#xff0c;找到想…...

C语言--------数据在内存中的存储

1.整数在内存中的存储 整数在内存是以补码的形式存在的&#xff1b; 整型家族包括char,int ,long long,short类型&#xff1b; 因为char类型是以ASCII值形式存在&#xff0c;所以也是整形家族&#xff1b; 这四种都包括signed,unsigned两种&#xff0c;即有符号和无符号&am…...

【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)

线性dp——一维动态规划 1、考虑最后一步可以由哪些状态得到&#xff0c;推出转移方程 2、考虑当前状态与哪些参数有关系&#xff0c;定义几维数组来表示当前状态 3、计算时间复杂度&#xff0c;判断是否需要进行优化。 一维动态规划例题&#xff1a;最大上升子序列问题 Java参…...

Excel模板1:彩色甘特图

Excel模板1&#xff1a;彩色甘特图 分享地址 当前效果&#xff1a;只需要填写进度&#xff0c; 其余效果都是自动完成的 。 阿里网盘永久分享&#xff1a;https://www.alipan.com/s/cXhq1PNJfdm ​省心。能用公式的绝不使用手动输入。 ​​ 这个区域以及标题可以手动输入…...

如何重新安装 macOS

你可以使用电脑的内建恢复系统“macOS 恢复”来重新安装 Mac 操作系统。不但简单快捷&#xff0c;而且重新安装后不会移除你的个人数据。 将 Mac 关机 选取苹果菜单  >“关机”&#xff0c;然后等待 Mac 关机。如果你无法将 Mac 关机&#xff0c;请按住它的电源按钮最长 …...

论文阅读-Pegasus:通过网络内一致性目录容忍分布式存储中的偏斜工作负载

论文名称&#xff1a;Pegasus: Tolerating Skewed Workloads in Distributed Storage with In-Network Coherence Directories 摘要 高性能分布式存储系统面临着由于偏斜和动态工作负载引起的负载不平衡的挑战。本文介绍了Pegasus&#xff0c;这是一个利用新一代可编程交换机…...

【PTA|编程题|期末复习】字符串(一)

【C语言/期末复习】字符和字符串函数&#xff08;附思维导图/例题) 目录 7-1 组织星期信息 输入样例 (repeat3) : 输出样例: 代码 7-2 查找指定字符 输入格式&#xff1a; 输出格式&#xff1a; 输入样例1&#xff1a; 输出样例1&#xff1a; 输入样例2&#xff1a; …...

数据库基本操作2

一.DML&#xff08;Data Manipulation Language&#xff09; 用来对数据库中表的数据记录进行更新 关键字&#xff1a;增删改 插入insert 删除delete 更新update 1.数据插入 insert into 表&#xff08;列名1&#xff0c;列名2&#xff0c;列名3……&#xff09;values&a…...

BTC破5W+QAQ

比特币突破5万美元 创2021年来最高 比特币在龙年伊始涨超6.8%。在大年初四&#xff08;2月13日&#xff09;一度最高涨至5万零383美元。 今年1月&#xff0c;当市场期待已久的现货比特币交易所挂牌基金&#xff08;ETF&#xff09;推出后&#xff0c;比特币遭抛售&#xff0c…...

Xubuntu16.04系统中修改系统语言和系统时间

1.修改系统语言 问题&#xff1a;下图显示系统语言不对 查看系统中可用的所有区域设置的命令 locale -a修改/etc/default/locale文件 修改后如下&#xff1a; # File generated by update-locale LANG"en_US.UTF-8" LANGUAGE"en_US:en"LANG"en_US…...

内网穿透 | 推荐两个免费的内网穿透工具

目录 1、简介 2、Ngrok 2.1、下载安装 2.2、运行 2.3、固定域名 2.4、配置多服务 3、cpolar 3.1、下载安装 3.2、运行 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应…...

Android中代码生成图片高级部分

1、引言 上一篇文章已经介绍了使用bitmap对象生成图片&#xff0c;但android中不仅仅可以直接使用bitmap对象生成图片&#xff0c;也能借助bitmap对象将布局文件转化为图片&#xff0c;实际应用时&#xff0c;我们需要将两者结合起来&#xff0c;只有这样才能生成更加绚丽的图片…...

计算机网络——09Web-and-HTTP

Web and HTTP 一些术语 Web页&#xff1a;由一些对象组成对象可以是HTML文件、JPEG图像&#xff0c;JAVA小程序&#xff0c;声音剪辑文件等Web页含有一个基本的HTML文件&#xff0c;该基本HTML文件又包含若干对象的引用&#xff08;链接&#xff09;通过URL对每个对象进行引用…...

告别FPN信息瓶颈:手把手图解Gold-YOLO的‘聚合-分发’机制(附代码逐行解读)

告别FPN信息瓶颈&#xff1a;手把手图解Gold-YOLO的‘聚合-分发’机制&#xff08;附代码逐行解读&#xff09; 在目标检测领域&#xff0c;YOLO系列模型凭借其出色的实时性能一直占据主导地位。然而&#xff0c;随着应用场景的复杂化&#xff0c;传统特征金字塔网络&#xff…...

18V/4A同步降压转换器:MPQ8632GLE-4的COT控制与快速瞬态响应解析

MPQ8632GLE-4&#xff1a;4A/18V 同步降压转换器的紧凑型电源解决方案在通信设备、分布式电源系统以及服务器主板等应用中&#xff0c;电源管理单元需要在小面积内实现高效率的电压转换&#xff0c;同时保持良好的瞬态响应。传统的 PWM 控制器往往需要复杂的环路补偿设计&#…...

淘宝淘金币自动化脚本:每天节省25分钟的数字生活革命

淘宝淘金币自动化脚本&#xff1a;每天节省25分钟的数字生活革命 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 你是否…...

某包丨图片+视频去水印去除工具

首先下载软件&#xff08;工具在末尾&#xff09;&#xff0c;然后运行&#xff0c;自动打开网页如下&#xff1a; 接着打开某包&#xff0c;找到你要去除水印的图片或者视频的链接&#xff1a; 工具下载&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/aec2cdde94ed...

PPTXjs终极指南:3分钟学会在浏览器中完美预览PPTX文件

PPTXjs终极指南&#xff1a;3分钟学会在浏览器中完美预览PPTX文件 【免费下载链接】PPTXjs jquery plugin for convertation pptx to html 项目地址: https://gitcode.com/gh_mirrors/pp/PPTXjs 还在为PPT文件兼容性问题烦恼吗&#xff1f;当精心制作的演示文稿在不同设…...

全息三维空间孪生,全域无感精准智位系列:UWB:多路径干扰精度失稳|镜像:多源时空误差融合

在全域空间数字化、实景虚实融合与空间智能快速演进的产业周期中&#xff0c;镜像视界&#xff08;浙江&#xff09;科技有限公司持续深耕视频原生三维重构、时空AI像素解算、全域无感精准定位、跨镜轨迹智能推演底层核心领域&#xff0c;依托八大自主可控核心引擎构筑全栈技术…...

Sitara处理器PRU-ICSS架构解析:工业自动化信息传输系统设计实战

1. 项目概述&#xff1a;工业自动化中的信息传输挑战与Sitara方案在工业自动化领域&#xff0c;信息传输的实时性、可靠性与灵活性&#xff0c;直接决定了生产线的“智商”与“反应速度”。想象一下&#xff0c;一条高速运转的汽水装瓶线&#xff0c;如果无法在毫秒级内感知到原…...

番茄小说下载器:打造个人数字书库的终极解决方案

番茄小说下载器&#xff1a;打造个人数字书库的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代&#xff0c;你是否曾因网络不稳定而中断阅读&#xff1f;是否想…...

【Perplexity环境新闻搜索实战指南】:20年老炮亲授3大避坑法则与实时情报提纯术

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity环境新闻搜索实战指南导论 Perplexity 是一款以实时、可信与上下文感知为设计核心的 AI 搜索工具&#xff0c;其底层融合了多源新闻 API、语义检索模型及动态引用验证机制&#xff0c;特别适…...

华硕笔记本性能管家G-Helper:告别臃肿控制中心,重获系统掌控权

华硕笔记本性能管家G-Helper&#xff1a;告别臃肿控制中心&#xff0c;重获系统掌控权 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vi…...