当前位置:   article > 正文

nacos zookeeper数据迁移_nacos 如何同步 zk的配置

nacos 如何同步 zk的配置

nacos zookeeper数据迁移

        

官网:https://nacos.io/zh-cn/docs/nacos-sync-use.html

nacos-sync:https://github.com/nacos-group/nacos-sync

        

             

                                   

nacos-sync

     

nacos-sync 支持迁移的数据中心

            

  1. nacos <==> nacos:支持0.8到1.0及以上版本的nacos数据迁移
  2. nacos <==> consul:只支持spring cloud注册中心数据迁移
  3. nacos <==> euraka:只支持spring cloud注册中心数据迁移
  4. nacos <==> zookeeper:只支持dubbo注册中心数据迁移

                

下载 nacos-sync,并编译jar包

  1. git clone https://github.com/nacos-group/nacos-sync.git
  2. cd nacosSync
  3. mvn clean package -U

          

nacos-sync 配置文件:application.properties

  1. server.port=8083
  2. server.servlet.context-path=/
  3. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  4. spring.jpa.hibernate.ddl-auto=update
  5. spring.jpa.properties.hibernate.show_sql=false
  6. spring.cloud.discovery.enabled=false
  7. spring.datasource.url=jdbc:mysql://localhost:3306/nacos_sync?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
  8. spring.datasource.username=root
  9. spring.datasource.password=root
  10. management.endpoints.web.exposure.include=*
  11. management.endpoint.health.show-details=always

            

数据库建表sql:nacosSync.sql(一般会自动创建,不需要手动创建)

  1. /******************************************/
  2. /* DB name = nacos_sync */
  3. /* Table name = cluster */
  4. /******************************************/
  5. CREATE TABLE `cluster` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  8. `cluster_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  9. `cluster_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  10. `connect_key_list` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  11. `user_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  12. `password` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  13. PRIMARY KEY (`id`)
  14. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
  15. /******************************************/
  16. /* DB name = nacos_sync */
  17. /* Table name = system_config */
  18. /******************************************/
  19. CREATE TABLE `system_config` (
  20. `id` int(11) NOT NULL AUTO_INCREMENT,
  21. `config_desc` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  22. `config_key` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  23. `config_value` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  24. PRIMARY KEY (`id`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
  26. /******************************************/
  27. /* DB name = nacos_sync */
  28. /* Table name = task */
  29. /******************************************/
  30. CREATE TABLE `task` (
  31. `id` int(11) NOT NULL AUTO_INCREMENT,
  32. `dest_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  33. `group_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  34. `name_space` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  35. `operation_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  36. `service_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  37. `source_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  38. `task_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  39. `task_status` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  40. `version` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  41. `worker_ip` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  42. PRIMARY KEY (`id`)
  43. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

                 

             

                                   

nacos-sync 启动

    

创建mysql,并创建nacos_sync数据库

  1. # 创建mysql容器
  2. docker run -it -d --net fixed --ip 172.18.0.10 -p 3307:3306 \
  3. -e MYSQL_ROOT_PASSWORD=root --name mysql2 mysql
  4. # 创建nacos_sync数据库
  5. mysql> create database nacos_sync;
  6. Query OK, 1 row affected (0.01 sec)

nacos-sync配置文件:修改数据库配置

  1. # 端口默认为8083
  2. ​server.port=8083
  3. server.servlet.context-path=/
  4. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  5. spring.jpa.hibernate.ddl-auto=update
  6. spring.jpa.properties.hibernate.show_sql=false
  7. spring.cloud.discovery.enabled=false
  8. # 数据库地址、用户名、密码
  9. spring.datasource.url=jdbc:mysql://localhost:3307/nacos_sync?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
  10. spring.datasource.username=root
  11. spring.datasource.password=root
  12. management.endpoints.web.exposure.include=*
  13. management.endpoint.health.show-details=always

         

启动nacos-sync

  1. huli@bogon nacosSync.0.4.7 % cd nacosSync
  2. huli@bogon nacosSync % ls
  3. LICENSE bin logs
  4. NOTICE conf nacosSync-server.jar
  5. # 启动nacos-sync
  6. huli@bogon nacosSync % bin/startup.sh start
  7. =============JAVA_HOME:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
  8. =============BASE_DIR:/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync
  9. =============JAVA:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java
  10. nacossync is starting,you can check the /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/logs/nacossync_start.out

           

查看启动日志

  1. huli@bogon nacosSync % cat logs/nacossync_start.out
  2. /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacossync_java_heapdump.hprof -XX:-UseLargePages -Dspring.config.location=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/conf/application.properties -DnacosSync.home=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync -Xlog:gc*:file=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/logs/nacossync_gc.log:time,tags:filecount=10,filesize=102400 -jar /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacosSync-server.jar --logging.config=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/conf/logback-spring.xml
  3. _ _ _____
  4. | \ | | / ___| Nacos-Sync 0.4.7
  5. | \| | __ _ ___ ___ ___ _____\ `--. _ _ _ __ ___ Port: 8083
  6. | . ` |/ _` |/ __/ _ \/ __|______`--. | | | | '_ \ / __| Pid: 1296
  7. | |\ | (_| | (_| (_) \__ \ /\__/ | |_| | | | | (__ Console: http://127.0.0.1:8083
  8. \_| \_/\__,_|\___\___/|___/ \____/ \__, |_| |_|\___|
  9. __/ |
  10. |___/
  11. 2022-03-15 10:33:17.639 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.7.Final
  12. 2022-03-15 10:33:17.653 [main] INFO com.alibaba.nacossync.NacosSyncMain - Starting NacosSyncMain v0.4.7 using Java 17.0.2 on bogon with PID 1296 (/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacosSync-server.jar started by huli in /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync)
  13. 2022-03-15 10:33:17.654 [main] INFO com.alibaba.nacossync.NacosSyncMain - No active profile set, falling back to default profiles: default
  14. 2022-03-15 10:33:19.597 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
  15. 2022-03-15 10:33:19.934 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 321 ms. Found 3 JPA repository interfaces.
  16. 2022-03-15 10:33:20.296 [main] INFO o.springframework.cloud.context.scope.GenericScope - BeanFactory id=90b9c9aa-25e5-34da-92af-68692576cbac
  17. 2022-03-15 10:33:20.958 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8083 (http)
  18. 2022-03-15 10:33:20.976 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8083"]
  19. 2022-03-15 10:33:20.976 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
  20. 2022-03-15 10:33:20.977 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.45]
  21. 2022-03-15 10:33:21.076 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
  22. 2022-03-15 10:33:21.077 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3348 ms
  23. 2022-03-15 10:33:21.532 [main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
  24. 2022-03-15 10:33:21.662 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.4.30.Final
  25. 2022-03-15 10:33:21.910 [main] INFO org.hibernate.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
  26. 2022-03-15 10:33:22.107 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
  27. 2022-03-15 10:33:22.474 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
  28. 2022-03-15 10:33:22.505 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
  29. 2022-03-15 10:33:23.469 [main] INFO o.h.e.t.jta.platform.internal.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
  30. 2022-03-15 10:33:23.479 [main] INFO o.s.orm.jpa.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
  31. 2022-03-15 10:33:24.518 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
  32. 2022-03-15 10:33:24.815 [main] INFO o.s.b.actuate.endpoint.web.EndpointLinksResolver - Exposing 16 endpoint(s) beneath base path '/actuator'
  33. 2022-03-15 10:33:24.972 [main] INFO o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html]
  34. 2022-03-15 10:33:25.198 [main] INFO o.s.c.n.e.c.DiscoveryClientOptionalArgsConfiguration - Eureka HTTP Client uses RestTemplate.
  35. 2022-03-15 10:33:25.299 [main] WARN o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
  36. 2022-03-15 10:33:25.321 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8083"]
  37. 2022-03-15 10:33:25.350 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8083 (http) with context path ''
  38. 2022-03-15 10:33:25.776 [main] INFO com.alibaba.nacossync.NacosSyncMain - Started NacosSyncMain in 9.311 seconds (JVM running for 10.243)

            

localhost:8083

            

            

            

            

         

              

                                   

数据迁移

   

**********

服务信息

       

zooinspector 可视化界面

         

           

                            

HelloService

  1. public interface HelloService {
  2. String hello();
  3. }

         

Hello2Service

  1. public interface Hello2Service {
  2. String hello();
  3. }

            

HelloServiceImpl

  1. @DubboService(group = "a", version = "1.0.0")
  2. public class HelloServiceImpl implements HelloService {
  3. @Override
  4. public String hello() {
  5. System.out.println("hello provider");
  6. return "success";
  7. }
  8. }

          

Hello2ServiceImpl

  1. @DubboService
  2. public class Hello2ServiceImpl implements Hello2Service {
  3. @Override
  4. public String hello() {
  5. System.out.println("hello provider 2");
  6. return "success 2";
  7. }
  8. }

           

**********

迁移操作

       

添加集群配置

         

             

nacos-sync 添加同步任务

         

          

nacos 查看服务列表

         

 服务同步成功

             

         

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号