5分钟完成 ZooKeeper 数据迁移

简介: 微服务引擎MSE面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。

前言

MSE提供了托管版的ZooKeeper,包含比开源ZooKeeper更强大更稳定的功能,能帮助您免去运维ZooKeeper集群的烦恼,当我们需要从自建ZooKeeper迁移到MSE ZooKeeper上面时,往往依赖旧集群的数据,MSE提供了多种数据迁移的方案,其中主流的方案可以通过MSE Sync进行实时同步,这样能够达到平滑不停机的目的,本文将介绍另外一种数据迁移的方式,主要针对业务支持停机的场景,进行一个补充,操作相比更加简单快速。

实现原理

image.png

在对ZooKeeper进行了若干次事务操作之后,ZooKeeper会将内存数据全量写入到本地磁盘中,生成一个snapshot开头的快照文件,这个快照文件就包含了该集群的全量数据。同时ZooKeeper在节点启动的时候,会首先加载该快照文件进行一次数据初始化。

基于此原理,我们可以将任意要迁移集群的快照文件,放到目标集群的快照路径中,然后重启目标集群就可以将迁移集群的数据加载到自己的内存中了,这样就完成了一次全量数据的迁移。

数据导入实践

image.png

步骤一:获取快照文件


“支持开源ZooKeeper 3.4.x~3.8.x的数据迁移导入到MSE ZooKeeper”

我们先找到自建ZooKeeper的Snap缓存文件:

  • 文件名为 “snapshot.xxx”格式的:是ZooKeeper某个时刻的全量数据,ZooKeeper会定时写到磁盘中的。

文件路径:

snapshot.xxx文件的存储路径:会配置在ZooKeeper的zoo.cfg(zoo.cfg默认放在zookeeper目录的conf文件夹下)配置文件中,dataDir项,例如:

dataDir=/home/admin/zookeeper/zkData

获取文件:

snapshot.xxx一般在目录中会存在多个,拿最近时间生成那个即可:

image.png

步骤二 :准备MSE集群

以下表格供参考,购买还需要参考QPS/TPS等维度的约束,例如读写数据较小,QPS/TPS相应也能提高,具体以业务场景为准:点击购买

image.png

步骤三: 上传快照文件

从注册配置中心列表页点击你购买的实例,进入ZooKeeper的基础信息页:

image.png

点击“数据导入”,上传Snapshot文件,文件大小限制会根据你当前ZooKeeper配置自动提示,例如本次购买的4C8G,提示最大不可超过800M大小:

image.png

上传完了之后,3个节点的集群大概5分钟左右,数据即可导入重启完成。

结果验证

数据导入完成之后,即可通过endpoint进行MSE ZooKeeper 的访问,获取到迁移数据。

“mse-xxxx-p.zk.mse.aliyuncs.com” 为集群的endpoint:

 CuratorFrameworkFactory.builder().connectString("mse-xxxx-p.zk.mse.aliyuncs.com:2181")
                    .sessionTimeoutMs(10000).retryPolicy(
                    retryPolicy).
                    build().start();
   ZooKeeper zk = new ZooKeeper("mse-xxxx-p.zk.mse.aliyuncs.com:2181", 30000,
                new Watcher() {
                    @Override
                    public void process(WatchedEvent event) {
                        System.out.println("ZooKeeper=====" + event);
                    }
                });

购买MSE Zookeeper享受企业级服务

image.png

ZooKeeper专业版

自建ZooKeeper

效率&性价比

集群重启、系统配置管理

页面一键重启,系统配置支持页面修改,自动重启生效

手动重启和配置,风险高,效率低

一站式网络配置

  • 提供免费域名接入点
  • 内置SLB,免费使用,故障节点自动摘除
  • 提高公网/私网2种访问类型,购买时自动绑定到域名

未集成

性能提升

读写性能优化

  • 事务日志独享高性能ESSD云盘,读性能提升20%,数据可靠性99.9999999%
  • 集成Dragonwell,读性能提升1倍,写性能提升10%

不支持

参数调优

JVM参数调优,优化5倍GC时间,降低FullGC

需自行调试

可观测性

集群状态展示和核心指标监控

  • 页面展示集群状态
  • 支持服务数/配置数/TPS/QPS等核心指标展示

不支持

报警管理

支持核心指标水位钉钉/电话/短信报警

不支持

高可用和安全

节点故障和容灾能力

自动检测,自动恢复,支持多可用区部署,SLA 99.95%

需要人工处理,自行设计

子账号权限管理

支持子账号管理访问实例权限

不支持

服务和配置鉴权

支持RAM鉴权

需要人工处理,自行设计

公网访问白名单

MSE控制台自带配置

需要单独购买公网,单独配置



相关文章
|
9月前
|
存储 缓存 监控
存储成本与性能平衡
本文系统解析存储成本与性能平衡之道,涵盖选型、生命周期、压缩去重、缓存策略等十大核心维度,结合实战案例与决策树,助力企业构建低成本、高性能、高可靠的存储架构。
695 1
|
存储 SQL 自然语言处理
ClickHouse查询执行与优化
本文详细介绍了SQL语法扩展、执行计划分析及优化策略,涵盖特殊函数与子句(如`WITH`、`ANY JOIN`)、聚合函数扩展(如`uniqCombined`、`quantileTDigest`)以及执行计划优化技巧。同时深入解析了ClickHouse的索引原理,包括主键索引和跳数索引的工作机制与优化方法。针对查询优化,文章提供了过滤条件下推、分布式查询优化和数据预聚合等策略,并探讨了资源管理与并发控制的核心参数(如`max_memory_usage`、`max_threads`)及队列优先级调度机制,助力高效使用ClickHouse。
1824 9
|
存储 缓存 固态存储
C盘清理终极指南:释放宝贵空间的有效技巧
C盘空间不足?别担心!本文《C盘清理终极指南》为你提供从基础到深度的全方位清理技巧。通过系统自带工具、手动删除无用文件、专业软件分析,再到系统设置优化与应用程序管理,助你高效释放磁盘空间,提升电脑性能。特别提示:清理前请备份重要数据,避免误删。按此指南操作,轻松解决C盘臃肿问题,让电脑重焕活力!
6475 0
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
2124 4
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
人工智能 Kubernetes API
3分钟掌握合同比对,思通数科开源工具让法律审查更高效
思通数科AI多模态平台提供开放API,支持与法律机构常用的ERP、CRM等企业系统集成。平台具备Docker、Kubernetes兼容性,支持二次开发和模块扩展,使用户能灵活应对不同业务需求。
1117 3
|
应用服务中间件 nginx Docker
[loki]轻量级日志聚合系统loki快速入门
[loki]轻量级日志聚合系统loki快速入门
1343 5
|
网络协议 安全 物联网
|
数据挖掘 物联网 数据处理
深入探讨Apache Flink:实时数据流处理的强大框架
在数据驱动时代,企业需高效处理实时数据流。Apache Flink作为开源流处理框架,以其高性能和灵活性成为首选平台。本文详细介绍Flink的核心特性和应用场景,包括实时流处理、强大的状态管理、灵活的窗口机制及批处理兼容性。无论在实时数据分析、金融服务、物联网还是广告技术领域,Flink均展现出巨大潜力,是企业实时数据处理的理想选择。随着大数据需求增长,Flink将继续在数据处理领域发挥重要作用。
1607 0
|
Linux 数据安全/隐私保护 网络安全
|
应用服务中间件 nginx 数据安全/隐私保护
Nginx——如何禁用TLSv1.0和TLSv1.1
Nginx——如何禁用TLSv1.0和TLSv1.1
1865 0

热门文章

最新文章