本文介绍如何在消息队列Kafka版控制台创建并启动迁移任务。

前提条件

  • 下载JDK 8
  • 安装Tsar

    为了更准确的获取执行机器的配置,推荐您提前安装Tsar软件。您也可以在运行迁移工具时通过指定--installTsar参数自动安装Tsar软件,但自动安装比较耗时,也有可能因为环境差异, 导致安装失败。

背景信息

Kafka集群元数据是指Kafka集群的Topic和Group配置信息。Kafka集群元数据存储于ZooKeeper上,Kafka集群各个节点从ZooKeeper中获取最新的元数据。因此,集群的各个节点的元数据被导出时都是最新且相同的。Kafka集群元数据可以被导出成一份JSON文件,然后被导入另一个Kafka集群,实现自建Kafka集群元数据备份。

元数据迁移是指将自建Kafka集群的元数据迁移到阿里云消息队列Kafka版实例。您可以将自建Kafka集群元数据导出,然后导入消息队列Kafka版实例,消息队列Kafka版会根据成功导入的元数据在目标消息队列Kafka版实例中创建对应的Topic和Group,实现自建Kafka集群元数据迁移上云。

导出元数据

使用元数据导出工具导出自建Kafka集群的元数据文件。

  1. 访问kafka-migration-assessment.jar.zip地址下载元数据导出工具。
  2. 将下载好的迁移工具上传至自建Kafka集群。
  3. 在工具所在目录运行以下命令,解压工具包和赋予JAR包可执行权限。
    unzip -o kafka-migration-assessment.jar.zip
    chmod 777 kafka-migration-assessment.jar
  4. 运行以下命令,导出元数据。
    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文件,导出元数据成功。

    在配置的文件存放目录下可以看到导出元数据文件,下载保存至本地。

步骤一:创建迁移任务

  1. 登录消息队列Kafka版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 在左侧导航栏,单击迁移上云
  4. 迁移上云页面,单击创建任务
  5. 创建任务配置向导页面,完成以下操作并单击下一步
    1. 描述文本框输入迁移上云的任务名称。
    2. 元数据右侧,单击点击上传元数据文件,选择已提前准备好的JSON格式的元数据文件上传。
  6. 购买实例配置向导页面,单击购买实例
  7. 请选择您要创建的实例的付费方式面板,选择付费方式,请根据需要选择包年包月或者按量付费,然后单击确定
  8. 在购买面板,选择实例类型,根据自身业务需求选择其他相应的配置,然后单击立即购买,根据页面提示完成支付。
    说明 如果使用迁移工具导出元数据时,设置evaluate取值为true,则购买时会根据获取的当前机器规格、近期存储情况、流量、Kafka集群配置信息默认选中推荐的规格。您也可以根据需要重新选择规格购买。
    实例列表页面可以看到您刚才购买的实例。

步骤二:部署实例并启动迁移任务

  1. 迁移上云页面,找到待部署的目标任务,在其操作列,单击继续配置
  2. 购买实例配置向导页面,单击下一步
  3. 部署实例配置向导页面,选择刚创建未部署的目标实例名称,并完成以下参数配置并单击部署并创建任务
    参数 说明 示例
    目标实例 迁移到消息队列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

删除迁移任务

迁移上云页面,找到待删除的目标任务,在其右侧操作列,单击删除

后续步骤

查看迁移进度