用户手册 (User Guide)
工具(Tools)
milvus-cdc
管理 CDC 任务(Manage-cdc-tasks)

管理 CDC 任务

捕获数据更改(CDC)任务使得从源 Milvus 实例到目标 Milvus 实例的数据同步成为可能。它监视源 Milvus 的操作日志,并实时地复制插入、删除和索引操作等数据更改到目标实例。这有助于实时的灾难恢复或者在 Milvus 部署之间进行主动-主动负载均衡。

本指南介绍如何管理 CDC 任务,包括创建、暂停、恢复、获取详情、列出和删除等操作,可以通过 HTTP 请求实现。

创建任务

创建 CDC 任务允许将源 Milvus 中的数据更改操作同步到目标 Milvus 中。

要创建 CDC 任务,请执行以下步骤:

curl -X POST http:_//localhost:8444/cdc \
-H "Content-Type: application/json" \
-d '{
  "request_type": "create",
  "request_data": {
    "milvus_connect_param": {
      "host": "localhost",
      "port": 19530,
      "username": "root",
      "password": "Milvus",
      "enable_tls": false,
      "connect_timeout": 10
    },
    "collection_infos": [
      {
        "name": "*"
      }
    ],
    "rpc_channel_info": {
      "name": "by-dev-replicate-msg"
    }
  }
}'

localhost 替换为目标 Milvus 服务器的 IP 地址。

参数

  • milvus_connect_param:目标 Milvus 的连接参数。

    • host:Milvus 服务器的主机名或 IP 地址。

    • port:Milvus 服务器监听的端口号。

    • username:与 Milvus 服务器进行身份验证的用户名。

    • password:与 Milvus 服务器进行身份验证的密码。

    • enable_tls:是否对连接使用 TLS/SSL 加密。

    • connect_timeout:建立连接的超时时间(以秒为单位)。

  • collection_infos:要同步的集合。目前只支持使用星号(*),因为 Milvus-CDC 在集群级别上进行同步,而不是在单个集合上。

  • rpc_channel_info:用于同步的 RPC 通道名称,由源 Milvus 配置中 common.chanNamePrefix.clustercommon.chanNamePrefix.replicateMsg 的值连接而成,用连字符(-)分隔。

预期的响应结果:

{
  "code": 200,
  "data": {
    "task_id":"xxxx"
  }
}

列出任务

要列出所有创建的 CDC 任务:

curl -X POST -H "Content-Type: application/json" -d '{
  "request_type": "list"
}' http://localhost:8444/cdc

localhost 替换为目标 Milvus 服务器的 IP 地址。

期望的响应:

{
  "code": 200,
  "data": {
    "tasks": [
      {
        "task_id": "xxxxx",
        "milvus_connect_param": {
          "host": "localhost",
          "port": 19530,
          "connect_timeout": 10
        },
        "collection_infos": [
          {
            "name": "*"
          }
        ],
        "state": "Running"
      }
    ]
  }
}

暂停任务

要暂停一个 CDC 任务:

curl -X POST -H "Content-Type: application/json" -d '{
  "request_type":"pause",
  "request_data": {
    "task_id": "xxxx"
  }
}' http://localhost:8444/cdc

localhost 替换为目标 Milvus 服务器的 IP 地址。

参数

  • task_id:要暂停的 CDC 任务的 ID。

预期响应:

{
  "code": 200,
  "data": {}
}

恢复任务

要恢复暂停的 CDC 任务:

curl -X POST -H "Content-Type: application/json" -d '{
  "request_type":"resume",
  "request_data": {
    "task_id": "xxxx"
  }
}' http://localhost:8444/cdc

localhost 替换为目标 Milvus 服务器的 IP 地址。

参数

  • task_id:要恢复的 CDC 任务的 ID。

预期响应:

{
  "code": 200,
  "data": {}
}

检索任务详情

检索特定 CDC 任务的详细信息:

curl -X POST -H "Content-Type: application/json" -d '{
  "request_type":"get",
  "request_data": {
    "task_id": "xxxx"
  }
}' http://localhost:8444/cdc

localhost 替换为目标 Milvus 服务器的 IP 地址。

参数

  • task_id: 要查询的 CDC 任务的 ID。

预期响应:

{
  "code": 200,
  "data": {
    "Task": {
      "collection_infos": [
        {
          "name": "*"
        }
      ],
      "milvus_connect_param": {
        "connect_timeout": 10,
        "enable_tls": true,
        "host": "localhost",
        "port": 19530
      },
      "state": "Running",
      "task_id": "xxxx"
    }
  }
}

删除任务

删除 CDC 任务:

curl -X POST -H "Content-Type: application/json" -d '{
  "request_type":"delete",
  "request_data": {
    "task_id": "30d1e325df604ebb99e14c2a335a1421"
  }
}' http://localhost:8444/cdc

localhost 替换为目标 Milvus 服务器的 IP 地址。

参数

  • task_id: 要删除的 CDC 任务的 ID。

预期响应:

{
  "code": 200,
  "data": {}
}