Развертывание сервера CDC
В этом руководстве представлен пошаговый процесс развертывания сервера Milvus-CDC.
Необходимые условия
Перед развертыванием сервера Milvus-CDC убедитесь, что выполнены следующие условия:
Экземпляры Milvus: Оба исходных Milvus и хотя бы один целевой Milvus должны быть развернуты и работать.
Версии исходного и целевого Milvus должны быть 2.3.2 или выше, предпочтительно 2.4.x. Мы рекомендуем использовать одну и ту же версию для исходного и целевого Milvus, чтобы обеспечить совместимость.
Установите конфигурацию
common.ttMsgEnabledцелевого Milvus наfalse.Настройте исходный и целевой Milvus с разными параметрами хранения метаданных и сообщений, чтобы избежать конфликтов. Например, избегайте использования одинаковых конфигураций etcd и rootPath, а также одинаковых сервисов Pulsar и
chanNamePrefixв нескольких экземплярах Milvus.
Метахранилище: Подготовьте базу данных 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. Возможные значения:etcdилиmysql.metaStoreConfig.etcdEndpoints: Адрес для подключения к etcd Milvus-CDC. Требуется, если дляstoreTypeустановлено значениеetcd.metaStoreConfig.mysqlSourceUrl: Адрес подключения к базе данных MySQL для сервера Milvus-CDC. Требуется, если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: Адрес для подключения к etcd источника Milvus. Дополнительные сведения см. в разделе Конфигурации, связанные с etcd.sourceConfig.etcdRootPath: Корневой префикс ключа, по которому исходный Milvus хранит данные в etcd. Значение может меняться в зависимости от метода развертывания экземпляра Milvus:Helm или Docker Compose: По умолчанию
by-dev.Оператор: По умолчанию
<release_name>.
replicateChan: имя канала репликации milvus, которое находится на{msgChannel.chanNamePrefix.cluster}/{msgChannel.chanNamePrefix.replicateMsg}в файле milvus.yaml.sourceConfig.pulsar: Конфигурации Pulsar для исходного Milvus. Если источник Milvus использует Kafka для хранения сообщений, удалите все конфигурации, связанные с Pulsar. Дополнительные сведения см. в разделе Конфигурации, связанные с Pulsar.sourceConfig.kafka.address: Адрес Kafka для источника Milvus. Не комментируйте эту конфигурацию, если источник Milvus использует Kafka для хранения сообщений.
Пример конфигурации:
# milvus-source config, these settings are basically the same as the corresponding configuration of milvus.yaml in milvus source.
sourceConfig:
# etcd config
etcdAddress:
- localhost:2379
etcdRootPath: by-dev
etcdMetaSubPath: meta
# default partition name
defaultPartitionName: _default
# read buffer length, mainly used for buffering if writing data to milvus-target is slow.
readChanLen: 10
replicateChan: by-dev-replicate-msg
# milvus-source mq config, which is pulsar or kafka
pulsar:
address: pulsar://localhost:6650
webAddress: localhost:80
maxMessageSize: 5242880
tenant: public
namespace: default
# authPlugin: org.apache.pulsar.client.impl.auth.AuthenticationToken
# authParams: token:xxx
# kafka:
# address: 127.0.0.1:9092
Компиляция сервера Milvus-CDC
После сохранения файла cdc.yaml перейдите в каталог milvus-cdc и выполните одну из следующих команд для компиляции сервера:
Для бинарного файла:
make buildДля образа Docker:
bash build_image.shДля образа Docker смонтируйте скомпилированный файл на
/app/server/configs/cdc.yamlвнутри контейнера.
Запустите сервер
Использование двоичного файла
Перейдите в каталог с бинарным файлом
milvus-cdcи в каталогconfigsс файломcdc.yaml, а затем запустите сервер:# dir tree . ├── milvus-cdc # build from source code or download from release page ├── configs │ └── cdc.yaml # config for cdc and source milvus # start milvus cdc ./milvus-cdc serverИспользуя Docker Compose:
docker compose up -d