本文介绍如何在云消息队列 Kafka 版控制台创建并启动迁移任务。
前提条件
背景信息
Kafka集群元数据是指Kafka集群的Topic和Group配置信息。Kafka集群元数据存储于ZooKeeper上,Kafka集群各个节点从ZooKeeper中获取最新的元数据。因此,集群的各个节点的元数据被导出时都是最新且相同的。Kafka集群元数据可以被导出成一份JSON文件,然后被导入另一个Kafka集群,实现自建Kafka集群元数据备份。
元数据迁移是指将自建Kafka集群的元数据迁移到阿里云云消息队列 Kafka 版实例。您可以将自建Kafka集群元数据导出,然后导入云消息队列 Kafka 版实例,云消息队列 Kafka 版会根据成功导入的元数据在目标云消息队列 Kafka 版实例中创建对应的Topic和Group,实现自建Kafka集群元数据迁移上云。
导出元数据
使用元数据导出工具导出自建Kafka集群的元数据文件。
- 访问kafka-migration-assessment.jar地址下载元数据导出工具。
- 将下载好的迁移工具上传至自建Kafka集群。
- 在工具所在目录运行以下命令,解压工具包和赋予JAR包可执行权限。
unzip -o kafka-migration-assessment.jar.zip
chmod 777 kafka-migration-assessment.jar
- 运行以下命令,导出元数据。
java -jar kafka-migration-assessment.jar MigrationFromZk --sourceZkConnect <host:port> --sourceBootstrapServers <host:port> --targetDirectory ../xxx/ --fileName metadata.json --commit
参数 说明 示例 sourceZkConnect 自建Kafka集群的ZooKeeper IP地址和端口号。如果不指定,则自动获取。 192.168.XX.XX:2181 sourceBootstrapServers 自建Kafka集群的IP地址和端口号。如果不指定,则自动获取。 192.168.XX.XX:9092 targetDirectory 导出元数据文件的存放目录。如果不指定,则默认为当前目录。 ../home/ fileName 导出元数据的文件名。如果不指定,则文件名称默认为: kafka-metadata-export.json。 metadata.json commit 提交运行。 commit installTsar 是否自动安装Tsar。默认不自动安装Tsar。 安装Tsar可以更加准确的获取当前机器规格、近期存储情况、流量、Kafka集群配置信息,但自动安装比较耗时,也有可能因为环境差异, 导致安装失败。
无 evaluate 是否获取当前机器规格、近期存储情况、流量、Kafka集群配置信息,在迁移时根据获取的信息进行评估,推荐您购买规格更合适的云消息队列 Kafka 版实例。 默认为true,即默认获取以进行规格评估,如果不需要评估,则需设置为false。
无 文件存放目录下生成JSON文件,导出元数据成功。
在配置的文件存放目录下可以看到导出元数据文件,下载保存至本地。
步骤一:创建迁移任务
- 登录云消息队列 Kafka 版控制台。
- 在概览页面的资源分布区域,选择地域。
- 在左侧导航栏,单击迁移上云。
- 在迁移上云页面,单击创建任务。
- 在创建任务配置向导页面,完成以下操作并单击下一步。
- 在描述文本框输入迁移上云的任务名称。
- 在元数据右侧,单击点击上传元数据文件,选择已提前准备好的JSON格式的元数据文件上传。
- 在购买实例配置向导页面,单击购买实例。
- 在请选择您要创建的实例的付费方式面板,选择付费方式,请根据需要选择包年包月或者按量付费,然后单击确定。
- 在购买面板,选择实例类型,根据自身业务需求选择其他相应的配置,然后单击立即购买,根据页面提示完成支付。说明 如果使用迁移工具导出元数据时,设置
evaluate
取值为true
,则购买时会根据获取的当前机器规格、近期存储情况、流量、Kafka集群配置信息默认选中推荐的规格。您也可以根据需要重新选择规格购买。在实例列表页面可以看到您刚才购买的实例。
步骤二:部署实例并启动迁移任务
- 在迁移上云页面,找到待部署的目标任务,在其操作列,单击继续配置。
- 在购买实例配置向导页面,单击下一步。
- 在部署实例配置向导页面,选择刚创建未部署的目标实例名称,并完成以下参数配置并单击部署并创建任务。
参数 说明 示例 目标实例 迁移到云消息队列 Kafka 版实例的名称。 alikafka_pre-cn-tl32je2j**** VPC ID 实例部署的VPC ID。您可以登录专有网络控制台,在搭建VPC网络所在地域的交换机页面,查看目标VPC ID。 vpc-rj91f8ql28reon76a**** vSwitch ID 实例部署的VPC ID。您可以登录专有网络控制台,在搭建VPC网络所在地域的交换机页面,查看目标交换机ID。 选择交换机ID后,系统会为您自动选择该交换机所在的可用区。
vsw-rj9dfeeir1xl8px4g**** 跨可用区部署 是否跨可用区部署。实例的规格类型为专业版时,可选择配置该参数。 - 是:可以跨可用区部署。跨可用区部署,可以使实例具备较高的容灾能力,可以抵御机房级别的故障。
- 否:不跨可用区部署,实例将在当前可用区中部署。
不涉及 版本 您要部署的云消息队列 Kafka 版实例的版本。版本号与开源版本号对应。 2.2.0 消息保留时间 在磁盘容量充足的情况下,消息的最长保留时间。磁盘容量不足(即磁盘水位达到85%)时,将提前删除旧的消息,以确保服务可用性。 72 最大消息大小 云消息队列 Kafka 版实例能收发的消息的最大值。配置前,请确认是否匹配生产和消费客户端相应配置。 1 消费位点保留时间 消息消费位点的保留时间。默认保留时间为7天,即10080分钟。取值范围为1440分钟~43200分钟。 10080 自定义用户名密码 选择是否自定义实例用户名和密码。公网/VPC实例类型可以选择配置该参数。 - 是:自定义用户名和密码,适用于多个实例共享同一用户名和密码的场景。
- 否:使用系统为每个实例分配的默认用户名和密码。
否 ACL 功能 选择是否启用实例的ACL功能。 - 启用:开启实例ACL功能。借助云消息队列 Kafka 版的ACL功能,您可以按需为SASL用户赋予向云消息队列 Kafka 版收发消息的权限,从而实现权限分割。关于SASL用户授权具体操作,请参见SASL用户授权。
- 禁用:不开启实例ACL功能,使用实例的默认SASL用户仅提供身份校验。
不涉及 在迁移上云页面可以看到任务状态为迁移中。迁移完成后,即可开始使用迁移上云的Topic和Group。
删除迁移任务
在迁移上云页面,找到待删除的目标任务,在其右侧操作列,单击删除。