Distribuzione del server CDC
Questa guida fornisce una procedura passo-passo per la distribuzione di un server Milvus-CDC.
Prerequisiti
Prima di distribuire un server Milvus-CDC, assicuratevi che siano soddisfatte le seguenti condizioni:
Istanze Milvus: Sia il Milvus di origine che almeno un Milvus di destinazione devono essere distribuiti e operativi.
Entrambe le versioni di Milvus di origine e di destinazione devono essere 2.3.2 o superiore, preferibilmente 2.4.x. Si consiglia di utilizzare la stessa versione per Milvus di origine e di destinazione per garantire la compatibilità.
Impostare la configurazione
common.ttMsgEnabled
del Milvus di destinazione sufalse
.Configurare il Milvus di origine e quello di destinazione con impostazioni distinte per la memorizzazione dei meta e dei messaggi, per evitare conflitti. Ad esempio, evitare di usare le stesse configurazioni etcd e rootPath, nonché servizi Pulsar e
chanNamePrefix
identici in più istanze Milvus.
Metastore: Preparare un database etcd o MySQL per il metastore Milvus-CDC.
Passi
Ottenere il file di configurazione di Milvus-CDC
Clonare il repo Milvus-CDC e navigare nella directory milvus-cdc/server/configs
per accedere al file di configurazione cdc.yaml
.
git clone https://github.com/zilliztech/milvus-cdc.git
cd milvus-cdc/server/configs
Modificare il file di configurazione
Nella directory milvus-cdc/server/configs
, modificare il file cdc.yaml
per personalizzare le configurazioni relative al metastore Milvus-CDC e ai dettagli di connessione del Milvus di origine.
Configurazione del metastore:
metaStoreConfig.storeType
: Tipo di metastore per Milvus-CDC. I valori possibili sonoetcd
omysql
.metaStoreConfig.etcdEndpoints
: Indirizzo per la connessione all'etcd di Milvus-CDC. Richiesto sestoreType
è impostato suetcd
.metaStoreConfig.mysqlSourceUrl
: Indirizzo di connessione del database MySQL per il server Milvus-CDC. Richiesto sestoreType
è impostato sumysql
.metaStoreConfig.rootPath
: Percorso radice del metastore Milvus-CDC. Questa configurazione consente la multi-tenancy, permettendo a più servizi CDC di utilizzare la stessa istanza etcd o MySQL, pur ottenendo l'isolamento attraverso percorsi radice diversi.
Esempio di configurazione:
# 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
Configurazione Milvus di origine:
Specificare i dettagli di connessione del Milvus di origine, compresi etcd e l'archiviazione dei messaggi, per stabilire una connessione tra il server Milvus-CDC e il Milvus di origine.
sourceConfig.etcdAddress
: Indirizzo per la connessione all'etcd del Milvus di origine. Per ulteriori informazioni, fare riferimento a Configurazioni relative a etcd.sourceConfig.etcdRootPath
: Prefisso radice della chiave in cui il Milvus di origine memorizza i dati in etcd. Il valore può variare in base al metodo di distribuzione dell'istanza Milvus:Helm o Docker Compose: valore predefinito:
by-dev
.Operatore: Valore predefinito:
<release_name>
.
replicateChan
Nome del canale di replica di Milvus, che è{msgChannel.chanNamePrefix.cluster}/{msgChannel.chanNamePrefix.replicateMsg}
nel file milvus.yaml.sourceConfig.pulsar
: Configurazioni Pulsar per il Milvus di origine. Se il Milvus di origine utilizza Kafka per l'archiviazione dei messaggi, rimuovere tutte le configurazioni relative a Pulsar. Per ulteriori informazioni, fare riferimento a Configurazioni relative a Pulsar.sourceConfig.kafka.address
: Indirizzo Kafka per il Milvus di origine. Togliere il commento a questa configurazione se il Milvus di origine usa Kafka per l'archiviazione dei messaggi.
Esempio di configurazione:
# 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
Compilazione del server Milvus-CDC
Dopo aver salvato il file cdc.yaml
, navigare nella directory milvus-cdc
ed eseguire uno dei seguenti comandi per compilare il server:
Per un file binario:
make build
Per un'immagine Docker:
bash build_image.sh
Per un'immagine Docker, montare il file compilato su
/app/server/configs/cdc.yaml
all'interno del contenitore.
Avviare il server
Utilizzando il file binario
Navigare nella directory contenente il binario
milvus-cdc
e nella directoryconfigs
con il filecdc.yaml
, quindi avviare il server:# 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
Utilizzando Docker Compose:
docker compose up -d