跳到主要内容

部署 CDC 服务器

本指南提供了部署 Milvus-CDC 服务器的逐步过程。

先决条件

在部署 Milvus-CDC 服务器之前,请确保满足以下条件:

  • Milvus 实例:源 Milvus 和至少一个目标 Milvus 都已部署并运行。

    • 源和目标 Milvus 版本必须为 2.3.2 或更高,最好为 2.4.x。我们建议源和目标 Milvus 使用相同版本以确保兼容性。

    • 将目标 Milvus 的 common.ttMsgEnabled 配置设置为 false

    • 配置源和目标 Milvus 的不同的元数据和消息存储设置,以避免冲突。例如,避免在多个 Milvus 实例中使用相同的 etcd 和 rootPath 配置,以及相同的 Pulsar 服务和 chanNamePrefix

  • 元数据存储:准备一个 etcd 或 MySQL 数据库用于 Milvus-CDC 元数据存储。

步骤

获取 Milvus-CDC 配置文件

克隆 Milvus-CDC 仓库,并转到 milvus-cdc/server/configs 目录以访问 cdc.yaml 配置文件。

git clone https://github.com/zilliztech/milvus-cdc.git

cd milvus-cdc/server/configs

编辑配置文件

milvus-cdc/server/configs 目录中,修改 cdc.yaml 文件以自定义与 Milvus-CDC 元数据存储和源 Milvus 连接详细信息相关的配置。

  • 元数据存储配置

    • metaStoreConfig.storeType:Milvus-CDC 的元数据存储类型。可能的值为 etcdmysql

    • metaStoreConfig.etcdEndpoints:连接到 Milvus-CDC 的 etcd 的地址。如果 storeType 设置为 etcd,则为必填项。

    • metaStoreConfig.mysqlSourceUrl:Milvus-CDC 服务器的 MySQL 数据库连接地址。如果 storeType 设置为 mysql,则为必填项。

    • metaStoreConfig.rootPath:Milvus-CDC 元数据存储的根路径。此配置支持多租户,允许多个 CDC 服务利用相同的 etcd 或 MySQL 实例,通过不同的根路径实现隔离。

    示例配置:

    # cdc meta data config
    metaStoreConfig:
    # the metastore type, available value: etcd, mysql
    storeType: etcd
    # etcd address
    etcdEndpoints:
    - localhost:2379
    # mysql connection address
    # mysqlSourceUrl: root:root@tcp(127.0.0.1:3306)/milvus-cdc?charset=utf8
    # meta data prefix, if multiple cdc services use the same store service, you can set different rootPaths to achieve multi-tenancy
    rootPath: cdc
  • 源 Milvus 配置: 指定源Milvus的连接详细信息,包括etcd和消息存储,以建立Milvus-CDC服务器与源Milvus之间的连接。

  • sourceConfig.etcdAddress:连接到源Milvus的etcd的地址。有关更多信息,请参阅etcd相关配置

  • sourceConfig.etcdRootPath:源Milvus在etcd中存储数据的键的根前缀。该值可能根据Milvus实例的部署方法而有所不同:

    • HelmDocker Compose:默认为 by-dev

    • Operator:默认为 <release_name>

  • sourceConfig.pulsar:源Milvus的Pulsar配置。如果源Milvus使用Kafka进行消息存储,请删除所有与Pulsar相关的配置。有关更多信息,请参阅Pulsar相关配置

  • sourceConfig.kafka.address:源Milvus的Kafka地址。如果源Milvus使用Kafka进行消息存储,请取消注释此配置。有关更多信息,请参阅Kafka相关配置

示例配置:

编译Milvus-CDC服务器

保存cdc.yaml文件后,转到milvus-cdc目录并运行以下命令之一来编译服务器:

  • 对于二进制文件:

    make build
  • 对于Docker镜像:

    bash build_image.sh

    对于Docker镜像,请将编译后的文件挂载到容器中的/app/server/configs/cdc.yaml

启动服务器

  • 使用二进制文件

    转到包含milvus-cdc二进制文件和包含cdc.yaml文件的configs目录的目录,然后启动服务器:

    # 目录结构
    .
    ├── milvus-cdc # 从源代码构建或从发布页面下载
    ├── configs
    │   └── cdc.yaml # cdc和源milvus的配置

    # 启动milvus cdc
    ./milvus-cdc server
  • 使用Docker Compose:

    docker-compose up -d