Desplegar un servidor CDC
Esta guía proporciona un proceso paso a paso para desplegar un servidor Milvus-CDC.
Requisitos previos
Asegúrese de que se cumplen las siguientes condiciones antes de desplegar un servidor Milvus-CDC:
Instancias de Milvus: Tanto el Milvus de origen como al menos un Milvus de destino deben estar desplegados y operativos.
Tanto la versión de Milvus de origen como la de destino deben ser 2.3.2 o superior, preferiblemente 2.4.x. Recomendamos utilizar la misma versión para Milvus de origen y de destino para garantizar la compatibilidad.
Establezca la configuración
common.ttMsgEnabled
del Milvus de destino enfalse
.Configure el Milvus de origen y de destino con distintas opciones de meta y almacenamiento de mensajes para evitar conflictos. Por ejemplo, evite utilizar las mismas configuraciones de etcd y rootPath, así como servicios Pulsar y
chanNamePrefix
idénticos en varias instancias Milvus.
Metastore: Tenga preparada una base de datos etcd o MySQL para el metastore de Milvus-CDC.
Pasos
Obtenga el archivo de configuración de Milvus-CDC
Clone el repositorio de Milvus-CDC y navegue hasta el directorio milvus-cdc/server/configs
para acceder al archivo de configuración cdc.yaml
.
git clone https://github.com/zilliztech/milvus-cdc.git
cd milvus-cdc/server/configs
Edite el archivo de configuración
En el directorio milvus-cdc/server/configs
, modifique el archivo cdc.yaml
para personalizar las configuraciones relacionadas con el metastore de Milvus-CDC y los detalles de conexión del Milvus fuente.
Configuración del metastore:
metaStoreConfig.storeType
: Tipo de metastore para Milvus-CDC. Los valores posibles sonetcd
omysql
.metaStoreConfig.etcdEndpoints
: Dirección para conectarse al etcd de Milvus-CDC. Obligatorio sistoreType
está configurado comoetcd
.metaStoreConfig.mysqlSourceUrl
: Dirección de conexión de la base de datos MySQL para el servidor Milvus-CDC. Obligatorio sistoreType
está configurado comomysql
.metaStoreConfig.rootPath
: Ruta raíz del metastore de Milvus-CDC. Esta configuración permite el multi-tenancy, permitiendo que múltiples servicios CDC utilicen la misma instancia etcd o MySQL mientras se consigue el aislamiento a través de diferentes rutas raíz.
Ejemplo de configuración:
# 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
Configuración Milvus de origen:
Especifique los detalles de conexión del Milvus de origen, incluyendo etcd y almacenamiento de mensajes, para establecer una conexión entre el servidor Milvus-CDC y el Milvus de origen.
sourceConfig.etcdAddress
: Dirección para conectarse al etcd del Milvus de origen. Para más información, consulte Configuraciones relacionadas con etcd.sourceConfig.etcdRootPath
: Prefijo raíz de la clave donde el Milvus de origen almacena los datos en etcd. El valor puede variar en función del método de despliegue de la instancia Milvus:Helm o Docker Compose: Por defecto
by-dev
.Operator: Por defecto
<release_name>
.
replicateChan
Nombre del canal de replicación de milvus, que es{msgChannel.chanNamePrefix.cluster}/{msgChannel.chanNamePrefix.replicateMsg}
en el archivo milvus.yaml.sourceConfig.pulsar
: Configuraciones Pulsar para el Milvus fuente. Si el Milvus de origen utiliza Kafka para el almacenamiento de mensajes, elimine todas las configuraciones relacionadas con Pulsar. Para más información, consulte Configuraciones relacionadas con Pulsar.sourceConfig.kafka.address
: Dirección Kafka para el Milvus de origen. Descomente esta configuración si el Milvus de origen utiliza Kafka para el almacenamiento de mensajes.
Ejemplo de configuración:
# 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
Compilar el servidor Milvus-CDC
Después de guardar el archivo cdc.yaml
, navegue hasta el directorio milvus-cdc
y ejecute uno de los siguientes comandos para compilar el servidor:
Para un archivo binario:
make build
Para una imagen Docker:
bash build_image.sh
Para una imagen Docker, monte el archivo compilado en
/app/server/configs/cdc.yaml
dentro del contenedor.
Iniciar el servidor
Con el archivo binario
Navegue hasta el directorio que contiene el binario
milvus-cdc
y el directorioconfigs
con el archivocdc.yaml
, e inicie el servidor:# 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
Usando Docker Compose:
docker compose up -d