nacos zookeeper数据迁移


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 支持迁移的数据中心

            

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

                

下载 nacos-sync,并编译jar包

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

cd nacosSync
mvn clean package -U

          

nacos-sync 配置文件:application.properties

server.port=8083
server.servlet.context-path=/

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.show_sql=false

spring.cloud.discovery.enabled=false

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
spring.datasource.username=root
spring.datasource.password=root

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

            

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

/******************************************/
/*   DB name = nacos_sync   */
/*   Table name = cluster   */
/******************************************/
CREATE TABLE `cluster` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `cluster_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `cluster_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `connect_key_list` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `user_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
/******************************************/
/*   DB name = nacos_sync   */
/*   Table name = system_config   */
/******************************************/
CREATE TABLE `system_config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `config_desc` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `config_key` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `config_value` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
/******************************************/
/*   DB name = nacos_sync   */
/*   Table name = task   */
/******************************************/
CREATE TABLE `task` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dest_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `group_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `name_space` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `operation_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `service_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `source_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `task_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `task_status` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `version` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `worker_ip` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

                 

             

                                   

nacos-sync 启动

    

创建mysql,并创建nacos_sync数据库

# 创建mysql容器
docker run -it -d --net fixed --ip 172.18.0.10 -p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=root --name mysql2 mysql

# 创建nacos_sync数据库
mysql> create database nacos_sync;
Query OK, 1 row affected (0.01 sec)

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

# 端口默认为8083
​server.port=8083
server.servlet.context-path=/

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.show_sql=false

spring.cloud.discovery.enabled=false

# 数据库地址、用户名、密码
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
spring.datasource.username=root
spring.datasource.password=root

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
​

         

启动nacos-sync

huli@bogon nacosSync.0.4.7 % cd nacosSync
huli@bogon nacosSync % ls
LICENSE			bin			logs
NOTICE			conf			nacosSync-server.jar

# 启动nacos-sync
huli@bogon nacosSync % bin/startup.sh start
=============JAVA_HOME:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
=============BASE_DIR:/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync
=============JAVA:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java
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

           

查看启动日志

huli@bogon nacosSync % cat logs/nacossync_start.out
/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

 _   _                           _____
| \ | |                         /  ___|                  Nacos-Sync 0.4.7
|  \| | __ _  ___ ___  ___ _____\ `--. _   _ _ __   ___  Port: 8083
| . ` |/ _` |/ __/ _ \/ __|______`--. | | | | '_ \ / __| Pid: 1296
| |\  | (_| | (_| (_) \__ \     /\__/ | |_| | | | | (__  Console: http://127.0.0.1:8083
\_| \_/\__,_|\___\___/|___/     \____/ \__, |_| |_|\___|
                                        __/ |
                                       |___/

2022-03-15 10:33:17.639 [background-preinit] INFO  org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.7.Final
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)
2022-03-15 10:33:17.654 [main] INFO  com.alibaba.nacossync.NacosSyncMain - No active profile set, falling back to default profiles: default
2022-03-15 10:33:19.597 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
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.
2022-03-15 10:33:20.296 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=90b9c9aa-25e5-34da-92af-68692576cbac
2022-03-15 10:33:20.958 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8083 (http)
2022-03-15 10:33:20.976 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8083"]
2022-03-15 10:33:20.976 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
2022-03-15 10:33:20.977 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.45]
2022-03-15 10:33:21.076 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2022-03-15 10:33:21.077 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3348 ms
2022-03-15 10:33:21.532 [main] INFO  org.hibernate.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
2022-03-15 10:33:21.662 [main] INFO  org.hibernate.Version - HHH000412: Hibernate ORM core version 5.4.30.Final
2022-03-15 10:33:21.910 [main] INFO  org.hibernate.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2022-03-15 10:33:22.107 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2022-03-15 10:33:22.474 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
2022-03-15 10:33:22.505 [main] INFO  org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
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]
2022-03-15 10:33:23.479 [main] INFO  o.s.orm.jpa.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
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
2022-03-15 10:33:24.815 [main] INFO  o.s.b.actuate.endpoint.web.EndpointLinksResolver - Exposing 16 endpoint(s) beneath base path '/actuator'
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]
2022-03-15 10:33:25.198 [main] INFO  o.s.c.n.e.c.DiscoveryClientOptionalArgsConfiguration - Eureka HTTP Client uses RestTemplate.
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.
2022-03-15 10:33:25.321 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8083"]
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 ''
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

public interface HelloService {

    String hello();
}

         

Hello2Service

public interface Hello2Service {

    String hello();
}

            

HelloServiceImpl

@DubboService(group = "a", version = "1.0.0")
public class HelloServiceImpl implements HelloService {

    @Override
    public String hello() {
        System.out.println("hello provider");

        return "success";
    }
}

          

Hello2ServiceImpl

@DubboService
public class Hello2ServiceImpl implements Hello2Service {

    @Override
    public String hello() {
        System.out.println("hello provider 2");

        return "success 2";
    }
}

           

**********

迁移操作

       

添加集群配置

         

             

nacos-sync 添加同步任务

         

          

nacos 查看服务列表

         

 服务同步成功

             

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值