博主介绍:✌全网粉丝4W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌
博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦
🍅开源项目免费哦:点击这里克隆或者下载 ,已经发布Vue3版 🍅
🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟
Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》
https://blog.csdn.net/qq_57756904/category_12199600.html
目录
目标
系统需要
获取安装包
初始化 DB
DB 配置
启动服务器
检查系统状态
检查系统状态
控制台
开始迁移
1、迁移信息
2、添加注册中心集群信息
3、添加同步任务
4、让 Dubbo 客户端连接到 Nacos 注册中心
Dubbo Consumer 客户端迁移
Dubbo Provider 迁移
5、新的部署结构
注意事项
💖微服务实战
目标
- 启动 NacosSync 服务
- 通过一个简单的例子,演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos
系统需要
启动服务之前,你需要安装下面的服务:
- 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.+
获取安装包
有 2 种方式可以获得 NacosSync 的安装包:
- 直接下载 NacosSync 的二进制安装包
nacosSync.0.2.0.zip
- 从 GitHub 上下载 NacosSync 的源码进行构建
Package:
cd nacosSync/ mvn clean package -U
目标文件的路径:
nacos-sync/nacossync-distribution/target/nacosSync.0.1.0.zip
解压安装包之后,工程的文件目录结构:
nacosSync ├── LICENSE ├── NOTICE ├── bin │ ├── nacosSync.sql │ ├── shutdown.sh │ └── startup.sh ├── conf │ ├── application.properties │ └── logback-spring.xml ├── logs └── nacosSync-server.0.1.0.jar
初始化 DB
系统默认配置的数据库是 MySql,也能支持其他的关系型数据库
- 建库,缺省的数据库名字为“nacos_Sync”
- 数据库表不需要单独创建,默认使用了 hibernate 的自动建表功能
- 如果你的环境不支持自动建表,可以使用系统自带的 sql 脚本建表,脚本放在 bin 目录下
DB 配置
DB 的配置文件放在 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)
检查系统状态
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 的部署结构:
开始迁移
1、迁移信息
Dubbo 服务的部署信息:
迁移的服务:
2、添加注册中心集群信息
1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个 Zookeeper 集群,选择集群类型为 ZK:
注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在 NacosSync 重启后,将不会恢复成功
2.同样的步骤,增加 NacosSync 集群:
添加完成后,可以在列表中查询到
3、添加同步任务
1.增加一个同步任务,从 Zookeeper 集群同步到 Nacos 集群,同步的粒度是服务,Zookeeper 集群则称为源集群,Nacos 集群称为目标集群。
添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
2.同步完成之后,检查下数据是否同步成功到 Nacos 集群,可以通过 Nacos 的控制台进行查询。
此刻,数据已经成功从 Zookeeper 集群同步到了 Nacos 集群,部署结构如下:
4、让 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 配置文件,让客户端能够找到 Nacos 集群
consumer.yaml
spring: application: name: dubbo-consumer demo: service: version: 1.0.0 group: zk dubbo: registry: address: nacos://127.0.0.1:8848
配置 Dubbo Consumer 的 Dubbo 配置文件,让客户端能够找到 Nacos 集群
consumer.yaml
不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了.
Consumer 发布完成之后,目前的部署结构如下:
Dubbo Provider 迁移
在升级 Provider 之前,你需要确保该 Provider 发布的服务,都已经配置在 NacosSync 中,同步的方式为从 Nacos 同步到 Zookeeper,因为 Provider 升级连接到 Nacos 之后,需要确保老的 Dubbo Consumer 客户端能够在 Zookeeper 上订阅到该 Provider 的地址,现在,我们增加一个同步任务:
注意: Nacos 服务同步到 Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉
同步任务完成后,你就可以升级 Provider 了,升级 Provider 的方法,参考升级 Consumer 的步骤.
5、新的部署结构
- 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
- 在所有的客户端迁移完成之后,部署结构如下:
现在,Zookeeper 集群,NacosSync 集群就可以下线了。
注意事项
- 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询;
- NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可;
- 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步;
- Dubbo 客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。
💖微服务实战
✨【微服务】SpringCloud的OpenFeign与Ribbon配置
✨集Oauth2+Jwt实现单点登录
✨Spring Cloud Alibaba微服务第29章之Rancher
✨Spring Cloud Alibaba微服务第27章之Jenkins
✨Spring Cloud Alibaba微服务第24章之Docker部署
✨Spring Cloud Alibaba微服务第23章之Oauth2授权码模式
✨Spring Cloud Alibaba微服务第22章之Oauth2
✨Spring Cloud Alibaba微服务第21章之分布式事务
✨Spring Cloud Alibaba微服务第18章之消息服务
✨Spring Cloud Alibaba微服务第16章之服务容错
✨Spring Cloud Alibaba微服务第14章之分库分表
✨Spring Cloud Alibaba微服务第11章之MyBatis-plus
✨Spring Cloud Alibaba微服务第8章之OpenFeign
✨Spring Cloud Alibaba微服务第7章之负载均衡Ribbon
✨SpringCloud Alibaba微服务第6章之Gateway
✨SpringCloud Alibaba微服务第4章之Nacos
✨SpringCloud Alibaba微服务开篇