3.5. Deploying the MongoDB connector
MongoDB コネクターのインストールは、JAR をダウンロードして Kafka Connect 環境に抽出し、プラグインの親ディレクトリーが Kafka Connect 環境に指定されていることを確認する必要がある単純なプロセスです。
前提条件
- Zookeeper、Kafka、および Kafka Connect がインストールされている。
- MongoDB がインストールされ、設定されていること。
手順
- Debezium MongoDB コネクター をダウンロードします。
- ファイルを Kafka Connect 環境に展開します。
プラグインの親ディレクトリーを Kafka Connect プラグインパスに追加します。
plugin.path=/kafka/connect
上記の例では、Debezium MongoDB コネクターを /kafka/connect/Debezium-connector-mongodb
パスに展開したことを前提としています。
- Kafka Connect プロセスを再起動します。これにより、新しい JAR が確実に選択されるようになります。
関連情報
デプロイメントプロセス、および AMQ Streams でのコネクターのデプロイに関する詳細は、Debezium のインストールガイドを参照してください。
3.5.1. 設定例
コネクターを使用して特定の MongoDB レプリカセットまたはシャードクラスターの変更イベントを生成するには、JSON で設定ファイルを作成します。コネクターが起動すると、MongoDB レプリカセットでコレクションの初期同期を実行し、レプリカセットの oplogs の読み取りを開始し、挿入、更新、および削除されたすべての行に対してイベントを生成します。任意で、不必要なコレクションを除外します。
以下は、MongoDB レプリカセット rs0
を 192.168.99.100 のポート 27017 で監視する MongoDB コネクターの設定例で、論理的に fullfillment
という名前が付けられます。通常、コネクターに使用できる設定プロパティーを使用して、.yaml
ファイルに Debezium MongoDB コネクターを設定します。
apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnector metadata: name: inventory-connector 1 labels: strimzi.io/cluster: my-connect-cluster spec: class: io.debezium.connector.mongodb.MongoDbConnector 2 config: mongodb.hosts: rs0/192.168.99.100:27017 3 mongodb.name: fulfillment 4 collection.whitelist: inventory[.]* 5
- 1
- Kafka Connect サービスに登録する場合のコネクターの名前。
- 2
- MongoDB コネクタークラスの名前。
- 3
- MongoDB レプリカセットへの接続に使用するホストアドレス。
- 4
- 生成されたイベントの namespace を形成する MongoDB レプリカセットの 論理名。コネクターが書き込む Kafka トピックの名前、Kafka Connect スキーマ名、および Avro コネクターが使用される場合に対応する Avro スキーマの namespace のすべてに使用されます。
- 5
- 監視するすべてのコレクションのコレクション namespace (例: <dbName>.<collectionName>) と一致する正規表現のリスト。これは任意です。
これら の設定で指定できる コネクタープロパティーの完全リスト を参照してください。
この設定は、POST 経由で稼働中の Kafka Connect サービスに送信できます。その後、設定を記録し、MongoDB レプリカセットまたはシャードクラスターに接続するコネクタータスクを 1 つ起動し、各レプリカセットにタスクを割り当て、oplog を読み取り、Kafka トピックにイベントを記録します。