{"id":28424554,"url":"https://github.com/nacos-group/nacos-sync","last_synced_at":"2025-06-26T06:31:33.663Z","repository":{"id":38375656,"uuid":"158166592","full_name":"nacos-group/nacos-sync","owner":"nacos-group","description":"Service Sync component","archived":false,"fork":false,"pushed_at":"2024-12-21T15:35:36.000Z","size":1641,"stargazers_count":303,"open_issues_count":75,"forks_count":149,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-06-05T10:12:50.778Z","etag":null,"topics":["dubbo","eureka","nacos","springcloud","sync","zookeeper"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nacos-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-19T05:27:50.000Z","updated_at":"2025-06-04T02:26:01.000Z","dependencies_parsed_at":"2024-11-30T08:23:57.235Z","dependency_job_id":"6b20ad94-2e60-4053-8086-076473434078","html_url":"https://github.com/nacos-group/nacos-sync","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/nacos-group/nacos-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fnacos-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fnacos-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fnacos-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fnacos-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nacos-group","download_url":"https://codeload.github.com/nacos-group/nacos-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fnacos-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262014534,"owners_count":23245148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dubbo","eureka","nacos","springcloud","sync","zookeeper"],"created_at":"2025-06-05T10:12:55.400Z","updated_at":"2025-06-26T06:31:33.656Z","avatar_url":"https://github.com/nacos-group.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nacos Sync\n\n## [Example](https://github.com/paderlol/nacos-sync-example)\n\n## Function\n\n - Console: provide API and console for management\n - Worker: provide the service registration synchronization. \n\n## Architecture\n\n### Architecture Topology\n\n\n```\n            +-------------+\n     +----\u003e |NacosClusterA|\n     |      +-------------+               +-------------+\n     |                                    |NacosClusterB|\nPull |                                    +--+----------+\nInfo |      +------------+                   ^\n     |      |ZooKeeper   |                   |\n     |      +--+---------+                   | Push Info\n     |         ^ Pull Info                   |\n     |         |                             |\n     |        ++-----------------------------+--+\n     \u003c--------+  NacosSync1, NacosSync2,....    |\n              +---+-------------------------+---+\n                  |                         |\n                  |                         |\n                  |                         |\n                  |       +---------+       |\n                  +-----\u003e |NacosSync| \u003c-----+\n                          |Database |\n                          +---------+\n```\n\n### Architecture HighLights\n\n - All registration information will be stored in NacosSync DB.\n - Multiple NacosSync instances will perform the same job.\n     - Multiple NacosSync instances ensure high availability.\n     - Multiple NacosSync instances performing the same job ensure the simplicity.\n     - NacosCluster target will dedup the synchronization information from Nacos.\n     \n\n## Quick Start:\n - Swagger API: http://127.0.0.1:8083/swagger-ui.html#/\n - Web Console: http://127.0.0.1:8083/\n - Others: TBD\n\n# NacosSync Migration User Guide\n\n## Support migration type\n\n| Source    | Target    | Support | Note                                                         |\n| --------- | --------- | ------- | ------------------------------------------------------------ |\n| Nacos     | Nacos     | Yes     | Only supports the same version of Nacos migration,**especially** the version of **0.8** migrates to 1.0 or above. |\n| Nacos     | Zookeeper | Yes     | Only support registery center of **Dubbo**                   |\n| Nacos     | Consul    | Yes     | Only support  registery center of **Spring Cloud**           |\n| Nacos     | Eureka    | Yes     | Only support  registery center of **Spring Cloud**           |\n| Zookeeper | Nacos     | Yes     | Only support registery center of **Dubbo**                   |\n| Consul    | Nacos     | Yes     | Only support  registery center of **Spring Cloud**           |\n| Eureka    | Nacos     | Yes     | Only support  registery center of **Spring Cloud**           |\n\n\n\n\n\n## Manual Goal\n\n- Start the NacosSync service\n- Use a simple example to demonstrate how to migrate a Dubbo client registered in the Zookeeper Registry to the Nacos Registry\n\n## Prerequisites\n\nBefore you begin, install the following:\n\n- 64bit OS: Linux/Unix/Mac/Windows supported, Linux/Unix/Mac recommended.\n- 64bit JDK 1.8+: downloads, JAVA_HOME settings.\n- Maven 3.5.2+: [downloads](https://maven.apache.org/download.cgi), [settings](https://maven.apache.org/settings.html).\n- MySql 5.6.+\n\n## Download \u0026 Build From Release\n\nThere are two ways to get NacosSync.\n\n- Download run package\n- Download source code from Github\n\n``` xml\n\ncd nacos-sync/\nmvn clean package -U\n\n```\n\nThe path to the target file:\n\n``` xml\n\nnacos-sync/nacossync-distribution/target/nacos-sync-0.5.0.tar.gz\n\n```\n\nAfter extracting the installation package, the directory structure:\n\n``` xml\n\nnacos-sync\n├── LICENSE\n├── NOTICE\n├── bin\n│   ├── nacosSync.sql\n│   ├── shutdown.sh\n│   └── startup.sh\n├── conf\n│   ├── application.properties\n│   └── logback-spring.xml\n├── logs\n└── nacos-sync-server.jar\n\n```\n\n## Initialize The DB\n\nThe default is Mysql database, which can support other relational databases\n\n- Build db schema, the default schema name nacos_sync.\n- Tables do not need to be created separately, which is conducive to hibernate's automatic table creation function.\n- If the automatic table creation fails, you can build the table nacosSync.sql, the table statement is in the bin folder.\n\n## DB Configuration\n\nIn the bin folder, application.properties:\n\n``` xml\n\nspring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8\nspring.datasource.username=root\nspring.datasource.password=root\n\n```\n\n## Start Server\n\n``` xml\n\n$ nacosSync/bin:\nsh startup.sh  start\n\n```\n\n## Admin Console\n\n``` xml\n\nhttp://127.0.0.1:8083/#/serviceSync\n\n```\n\n## Advanced Configuration\n\n### Full Synchronization from Zookeeper to Nacos (Dubbo)\nWhen “*” 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.\n![img_1.png](img_1.png)\n\n### Full Synchronization from Nacos to Nacos\nWhen “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.\n\nThis description explains the functionality clearly for English-speaking users.\n![img_2.png](img_2.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnacos-group%2Fnacos-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnacos-group%2Fnacos-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnacos-group%2Fnacos-sync/lists"}