Implantar o servidor CDC
Este guia fornece um processo passo-a-passo para a implantação de um servidor Milvus-CDC.
Pré-requisitos
Assegure-se de que as seguintes condições sejam atendidas antes de implantar um servidor Milvus-CDC:
Instâncias do Milvus: Tanto o Milvus de origem quanto pelo menos um Milvus de destino devem estar implantados e operacionais.
As versões do Milvus de origem e de destino devem ser 2.3.2 ou superior, de preferência 2.4.x. Recomendamos a utilização da mesma versão para o Milvus de origem e de destino para garantir a compatibilidade.
Defina a configuração
common.ttMsgEnabled
do Milvus de destino parafalse
.Configure o Milvus de origem e o Milvus de destino com definições distintas de meta e armazenamento de mensagens para evitar conflitos. Por exemplo, evite usar as mesmas configurações de etcd e rootPath, bem como serviços Pulsar idênticos e
chanNamePrefix
em várias instâncias do Milvus.
Metastore: Tenha um banco de dados etcd ou MySQL pronto para o metastore do Milvus-CDC.
Etapas
Obter o arquivo de configuração do Milvus-CDC
Clone o repositório Milvus-CDC e navegue até ao diretório milvus-cdc/server/configs
para aceder ao ficheiro de configuração cdc.yaml
.
git clone https://github.com/zilliztech/milvus-cdc.git
cd milvus-cdc/server/configs
Editar o ficheiro de configuração
No diretório milvus-cdc/server/configs
, modifique o ficheiro cdc.yaml
para personalizar as configurações relacionadas com o metastore do Milvus-CDC e os detalhes de ligação do Milvus de origem.
Configuração do metastore:
metaStoreConfig.storeType
: Tipo de metastore para o Milvus-CDC. Os valores possíveis sãoetcd
oumysql
.metaStoreConfig.etcdEndpoints
: Endereço de ligação ao etcd do Milvus-CDC. Obrigatório sestoreType
estiver definido comoetcd
.metaStoreConfig.mysqlSourceUrl
: Endereço de ligação da base de dados MySQL para o servidor Milvus-CDC. Obrigatório sestoreType
estiver definido comomysql
.metaStoreConfig.rootPath
: Caminho da raiz do metastore do Milvus-CDC. Esta configuração permite o multilocatário, permitindo que vários serviços CDC utilizem a mesma instância etcd ou MySQL, ao mesmo tempo que obtêm o isolamento através de diferentes caminhos de raiz.
Exemplo de configuração:
# 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
Configuração do Milvus de origem:
Especifique os detalhes de ligação do Milvus de origem, incluindo o etcd e o armazenamento de mensagens, para estabelecer uma ligação entre o servidor Milvus-CDC e o Milvus de origem.
sourceConfig.etcdAddress
: Endereço para conexão com o etcd do Milvus de origem. Para mais informações, consulte Configurações relacionadas com o etcd.sourceConfig.etcdRootPath
: Prefixo da raiz da chave onde o Milvus de origem armazena os dados no etcd. O valor pode variar com base no método de implantação da instância do Milvus:Helm ou Docker Compose: A predefinição é
by-dev
.Operator (Operador): O valor predefinido é
<release_name>
.
replicateChan
Nome do canal de replicação do milvus, que é{msgChannel.chanNamePrefix.cluster}/{msgChannel.chanNamePrefix.replicateMsg}
no ficheiro milvus.yamlsourceConfig.pulsar
: Configurações do Pulsar para o Milvus de origem. Se o Milvus de origem usa Kafka para armazenamento de mensagens, remova todas as configurações relacionadas ao Pulsar. Para obter mais informações, consulte Configurações relacionadas ao Pulsar.sourceConfig.kafka.address
: Endereço do Kafka para o Milvus de origem. Descomente esta configuração se o Milvus de origem usa Kafka para armazenamento de mensagens.
Exemplo de configuração:
# 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 o servidor Milvus-CDC
Depois de guardar o ficheiro cdc.yaml
, navegue até ao diretório milvus-cdc
e execute um dos seguintes comandos para compilar o servidor:
Para um ficheiro binário:
make build
Para uma imagem do Docker:
bash build_image.sh
Para uma imagem Docker, monte o ficheiro compilado em
/app/server/configs/cdc.yaml
dentro do contentor.
Iniciar o servidor
Usando o binário
Navegue até o diretório que contém o binário
milvus-cdc
e o diretórioconfigs
com o arquivocdc.yaml
e, em seguida, inicie o 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 o Docker Compose:
docker compose up -d