CDC-Server bereitstellen
Dieser Leitfaden enthält eine schrittweise Anleitung für die Bereitstellung eines Milvus-CDC-Servers.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind, bevor Sie einen Milvus-CDC-Server einrichten:
Milvus-Instanzen: Sowohl das Quell-Milvus als auch mindestens ein Ziel-Milvus sollten bereitgestellt und betriebsbereit sein.
Sowohl die Quell- als auch die Ziel-Milvus-Versionen müssen 2.3.2 oder höher sein, vorzugsweise 2.4.x. Wir empfehlen, die gleiche Version für Quell- und Ziel-Milvus zu verwenden, um Kompatibilität zu gewährleisten.
Setzen Sie die
common.ttMsgEnabled
Konfiguration des Ziel-Milvus auffalse
.Konfigurieren Sie das Quell- und das Ziel-Milvus mit unterschiedlichen Meta- und Nachrichtenspeichereinstellungen, um Konflikte zu vermeiden. Vermeiden Sie zum Beispiel die Verwendung derselben etcd- und rootPath-Konfigurationen sowie identischer Pulsar-Dienste und
chanNamePrefix
in mehreren Milvus-Instanzen.
Metaspeicher: Halten Sie eine etcd- oder MySQL-Datenbank für den Milvus-CDC-Metaspeicher bereit.
Schritte
Besorgen Sie sich die Milvus-CDC-Konfigurationsdatei
Klonen Sie das Milvus-CDC-Repositorium und navigieren Sie zum Verzeichnis milvus-cdc/server/configs
, um auf die Konfigurationsdatei cdc.yaml
zuzugreifen.
git clone https://github.com/zilliztech/milvus-cdc.git
cd milvus-cdc/server/configs
Bearbeiten Sie die Konfigurationsdatei
Ändern Sie im Verzeichnis milvus-cdc/server/configs
die Datei cdc.yaml
, um die Konfigurationen in Bezug auf den Milvus-CDC-Metastore und die Verbindungsdetails der Milvus-Quelle anzupassen.
Metastore-Konfiguration:
metaStoreConfig.storeType
: Typ des Metaspeichers für Milvus-CDC. Mögliche Werte sindetcd
odermysql
.metaStoreConfig.etcdEndpoints
: Adresse für die Verbindung mit dem etcd von Milvus-CDC. Erforderlich, wennstoreType
aufetcd
eingestellt ist.metaStoreConfig.mysqlSourceUrl
: Verbindungsadresse der MySQL-Datenbank für den Milvus-CDC-Server. Erforderlich, wennstoreType
aufmysql
gesetzt ist.metaStoreConfig.rootPath
: Wurzelpfad des Milvus-CDC-Metaspeichers. Diese Konfiguration ermöglicht Multi-Tenancy, so dass mehrere CDC-Dienste dieselbe etcd- oder MySQL-Instanz nutzen können, während sie durch unterschiedliche Root-Pfade isoliert werden.
Beispielkonfiguration:
# 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
Quell-Milvus-Konfiguration:
Geben Sie die Verbindungsdetails des Quell-Milvus an, einschließlich etcd und Nachrichtenspeicher, um eine Verbindung zwischen dem Milvus-CDC-Server und dem Quell-Milvus herzustellen.
sourceConfig.etcdAddress
: Adresse für die Verbindung mit dem etcd des Quell-Milvus. Weitere Informationen finden Sie unter etcd-bezogene Konfigurationen.sourceConfig.etcdRootPath
: Root-Präfix des Schlüssels, in dem das Quell-Milvus Daten in etcd speichert. Der Wert kann je nach der Bereitstellungsmethode der Milvus-Instanz variieren:Helm oder Docker Compose: Der Standardwert ist
by-dev
.Operator: Der Standardwert ist
<release_name>
.
replicateChan
Name des Milvus-Replikationskanals, der in der Datei milvus.yaml unter{msgChannel.chanNamePrefix.cluster}/{msgChannel.chanNamePrefix.replicateMsg}
zu finden istsourceConfig.pulsar
: Pulsar-Konfigurationen für den Quell-Milvus. Wenn das Quell-Milvus Kafka zur Nachrichtenspeicherung verwendet, entfernen Sie alle Pulsar-bezogenen Konfigurationen. Weitere Informationen finden Sie unter Pulsar-bezogene Konfigurationen.sourceConfig.kafka.address
: Kafka-Adresse für das Quell-Milvus. Dekommentieren Sie diese Konfiguration, wenn das Quell-Milvus Kafka für die Nachrichtenspeicherung verwendet.
Beispielkonfiguration:
# 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
Kompilieren des Milvus-CDC-Servers
Nachdem Sie die Datei cdc.yaml
gespeichert haben, navigieren Sie zum Verzeichnis milvus-cdc
und führen einen der folgenden Befehle aus, um den Server zu kompilieren:
Für eine Binärdatei:
make build
Für ein Docker-Abbild:
bash build_image.sh
Bei einem Docker-Image mounten Sie die kompilierte Datei nach
/app/server/configs/cdc.yaml
innerhalb des Containers.
Starten Sie den Server
Verwendung der Binärdatei
Navigieren Sie zu dem Verzeichnis, das die Binärdatei
milvus-cdc
und das Verzeichnisconfigs
mit der Dateicdc.yaml
enthält, und starten Sie dann den 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
Verwenden Sie Docker Compose:
docker compose up -d