NacosSync migration user guide

Guide purposes

  • Start NacosSync service
  • By a simple example, demonstrates how to register to the Zookeeper Dubbo client migrated to Nacos.

Preparatory work

Before you start the service, you need to install the following services:

Get the installation package

There are two ways to obtain NacosSync installation package:

  • Direct download NacosSync binary installation package:nacosSync.${version}.zip
  • Download NacosSync source to build from the Github

Package:

  1. cd nacosSync/
  2. mvn clean package -U

The path of the target file:

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

Unpack the installation package, project file directory structure:

  1. nacosSync
  2. ├── LICENSE
  3. ├── NOTICE
  4. ├── bin
  5. ├── nacosSync.sql
  6. ├── shutdown.sh
  7. └── startup.sh
  8. ├── conf
  9. ├── application.properties
  10. └── logback-spring.xml
  11. ├── logs
  12. └── nacosSync-server.${version}.jar

Initialize the database

The system default configuration database is Mysql, can also support other relational database. 1.The database construction, the default database name for “nacos_Sync”. 2.The database table don’t need to create separately, using the hibernate automatically by default build table function. 3.If you do not support automatic table, you can use the system’s own build table SQL script, the script in the bin directory.

Database configuration

Database configuration file on conf/application.properties:

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

Start server

  1. $ nacosSync/bin:
  2. sh startup.sh restart

Check system status

1.Check system log

The path of the log in nacosSync/logs/nacosSync.log, check whether there are abnormal information.

2.Check system port

Port is the default system 8081, you can define your own application.properties.

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

Console

Access path:

  1. http://127.0.0.1:8081/#/serviceSync

image.png

If there is no problem, check NacosSync has begun, normal NacosSync deployment structure:image.png

Starting migration

Migration information

Dubbo service deployment information:image.png

The migration of services:

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

Add the registry cluster information

1.Click on the “cluster configuration” button in the left navigation bar, a new cluster, first add a Zookeeper cluster, select the cluster type for ZK. image.png

Note: the cluster name can customize, but once confirmed, cannot be modified, otherwise increase task based on the cluster, after NacosSync restart, success will not resume.

2.The same steps, increase NacosSync cluster. image.png

3.After the completion of the add, can inquire on the list: image.png

Add the synchronization task

  1. Add a sync task, from Zookeeper cluster synchronization to Nacos cluster, synchronous granularity is service, it is called a Zookeeper cluster source cluster, Nacos cluster called target cluster. imagesd.png

Add finished, can be in service sync list, view has add synchronization task: image.png

  1. The synchronization is completed, check whether the data synchronization to success Nacos cluster, can query through the Nacos console. image.png

  2. At the moment, the data has been successfully from Zookeeper cluster synchronization to Nacos cluster, the deployment structure is as follows: image.png

Dubbo clients to connect to Nacos registry

Dubbo Consumer client migration

Dubbo has supported Nacos registry, support version 2.5 +, need to add a Nacos registry of Dubbo extensions depends on:

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>dubbo-registry-nacos</artifactId>
  4. <version>0.0.2</version>
  5. </dependency>

Increase Nacos client depends on:

  1. <dependency>
  2. <groupId>com.alibaba.nacos</groupId>
  3. <artifactId>nacos-client</artifactId>
  4. <version>0.6.2</version>
  5. </dependency>

Configuration Dubbo Consumer Dubbo profile Consumer. The yaml, let the client can find Nacos cluster.

  1. spring:
  2. application:
  3. name: dubbo-consumer
  4. demo:
  5. service:
  6. version: 1.0.0
  7. group: zk
  8. dubbo:
  9. registry:
  10. address: nacos://127.0.0.1:8848

Don’t need to modify the code, configuration after the update, you can restart your application into law.

Consumer release is completed, the deployment of the structure is as follows: image.png

Dubbo Provider migration

Before you upgrade the Provider, you need to ensure that the Provider of services, are already configured in NacosSync, synchronous way from Nacos synchronization to Zookeeper, because the Provider connected to Nacos upgrade, you need to make sure that the old Dubbo Consumer client can subscribe to the Provider’s address in the Zookeeper, now, we add a sync task: image.png

image.png

Note: Nacos synchronization to the Zookeeper service, do not need to fill in the version number, you in choosing the source cluster, the version number of the input box automatically hidden.

Sync task is completed, you can upgrade the Provider, upgrade the Provider method, reference to upgrade the Consumer steps.

New deployment structure

  • In the process of upgrading, there will be new and old versions of the client at the same time, the deployment structure is as follows:

image.png

  • All client migration is completed, the deployment structure is as follows:

image.png

Now, the Zookeeper cluster, NacosSync cluster can get offline.

Attention

  • Synchronization task after adding, you need to ensure that the service is successful sync to the target cluster, can through the console the target cluster.
  • NacosSync support high availability cluster pattern deployment, you only need to put the database can be configured to the same.
  • Comb if not clear subscription and published service, suggested can do services are two-way synchronous.
  • Dubbo client currently does not support Nacos weighting function, if you are using the weight function, need to reconsider the plan.