Service Sync component
Go to file
paderlol 0c35e096c2
Merge pull request #384 from nacos-group/develop
Optimize some codes
2024-11-30 15:23:35 +08:00
nacossync-console Refactor some code 2022-06-08 21:34:13 +08:00
nacossync-distribution Feat/sync support2.x#mutiple thread sync02 (#304) 2022-08-01 08:53:33 +08:00
nacossync-test 1. dependency的版本号全部挪到父pom的dependencyManagement; 2022-06-05 15:28:04 +08:00
nacossync-worker Optimize some codes 2024-11-30 15:20:40 +08:00
.gitignore 1. dependency的版本号全部挪到父pom的dependencyManagement; 2022-06-05 15:28:04 +08:00
LICENSE docs:add LICENSE 2018-11-19 14:07:23 +08:00
README.md 0.5.0 (#351) 2024-05-18 23:50:23 +08:00
img_1.png 0.5.0 (#351) 2024-05-18 23:50:23 +08:00
img_2.png 0.5.0 (#351) 2024-05-18 23:50:23 +08:00
pom.xml Write unit tests for all utils classes 2024-10-29 10:52:01 +08:00

README.md

Nacos Sync

Example

Function

  • Console: provide API and console for management
  • Worker: provide the service registration synchronization.

Architecture

Architecture Topology

            +-------------+
     +----> |NacosClusterA|
     |      +-------------+               +-------------+
     |                                    |NacosClusterB|
Pull |                                    +--+----------+
Info |      +------------+                   ^
     |      |ZooKeeper   |                   |
     |      +--+---------+                   | Push Info
     |         ^ Pull Info                   |
     |         |                             |
     |        ++-----------------------------+--+
     <--------+  NacosSync1, NacosSync2,....    |
              +---+-------------------------+---+
                  |                         |
                  |                         |
                  |                         |
                  |       +---------+       |
                  +-----> |NacosSync| <-----+
                          |Database |
                          +---------+

Architecture HighLights

  • All registration information will be stored in NacosSync DB.
  • Multiple NacosSync instances will perform the same job.
    • Multiple NacosSync instances ensure high availability.
    • Multiple NacosSync instances performing the same job ensure the simplicity.
    • NacosCluster target will dedup the synchronization information from Nacos.

Quick Start:

NacosSync Migration User Guide

Support migration type

Source Target Support Note
Nacos Nacos Yes Only supports the same version of Nacos migration,especially the version of 0.8 migrates to 1.0 or above.
Nacos Zookeeper Yes Only support registery center of Dubbo
Nacos Consul Yes Only support registery center of Spring Cloud
Nacos Eureka Yes Only support registery center of Spring Cloud
Zookeeper Nacos Yes Only support registery center of Dubbo
Consul Nacos Yes Only support registery center of Spring Cloud
Eureka Nacos Yes Only support registery center of Spring Cloud

Manual Goal

  • Start the NacosSync service
  • Use a simple example to demonstrate how to migrate a Dubbo client registered in the Zookeeper Registry to the Nacos Registry

Prerequisites

Before you begin, install the following:

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

Download & Build From Release

There are two ways to get NacosSync.

  • Download run package
  • Download source code from Github

cd nacos-sync/
mvn clean package -U

The path to the target file:


nacos-sync/nacossync-distribution/target/nacos-sync-0.5.0.tar.gz

After extracting the installation package, the directory structure:


nacos-sync
├── LICENSE
├── NOTICE
├── bin
│   ├── nacosSync.sql
│   ├── shutdown.sh
│   └── startup.sh
├── conf
│   ├── application.properties
│   └── logback-spring.xml
├── logs
└── nacos-sync-server.jar

Initialize The DB

The default is Mysql database, which can support other relational databases

  • Build db schema, the default schema name nacos_sync.
  • Tables do not need to be created separately, which is conducive to hibernate's automatic table creation function.
  • If the automatic table creation fails, you can build the table nacosSync.sql, the table statement is in the bin folder.

DB Configuration

In the bin folder, application.properties:


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

Start Server


$ nacosSync/bin:
sh startup.sh  start

Admin Console


http://127.0.0.1:8083/#/serviceSync

Advanced Configuration

Full Synchronization from Zookeeper to Nacos (Dubbo)

When “*” is entered in the “Service Name” field of this form, it will fully synchronize all services from Zookeeper to Nacos, but only when using Dubbo. img_1.png

Full Synchronization from Nacos to Nacos

When “All” is entered in the “Service Name” field of this form, it will automatically synchronize all registered services within the default group of the current cluster.

This description explains the functionality clearly for English-speaking users. img_2.png