Kafka のコンシューマーおよびプロデューサープロパティ用のユーザー・エグジットの開発(UNIXおよび Linux )

ユーザー・エグジットにより、 Kafka 用のCDCレプリケーション・エンジンにコンシューマーおよびプロデューサーのプロパティが提供されます。 これらのプロパティは、実行時にCDCに渡されるカスタムJavaクラスを通じて指定できます。

このタスクについて

これらのプロパティは、設定ファイルとして指定するか、プログラムから設定することができます。 Kafka 用のCDCレプリケーション・エンジンには、以下のインスタンスレベルのプロパティが必要です:
  • Apache Kafka 消費者向け機能
  • Apache Kafka プロデューサーのプロパティ

これらのプロパティをJavaクラスを通じて提供することで、柔軟性を高め、認証情報などの機密性の高い認証情報を安全に管理・暗号化できるようにします。

プロパティのユーザー・エグジットは、 PropertiesExitIF インターフェースを実装する必要があります。 APIリファレンスは、CDC Replicationのインストールディレクトリ内にJavadoc形式で用意されています。 APIリファレンスを表示するには、ファイル /docs/api/index.html に移動し、ブラウザでJavadocドキュメントを開いてください。 KafkaConsumerPropertiesExitSample および KafkaProducerPropertiesExitSample の実装は、ファイル kafkaproducer.propertieskafkaconsumer.properties またはファイルで定義されているのと同じ設定値を返さなければなりません。 Kafka のプロデューサーまたはコンシューマーのプロパティの終了を有効にすると、 Kafka 用のCDCレプリケーション・エンジンは、指定されたクラスによって返される値を使用し、対応するプロパティ・ファイルを無視します。

手順

  1. IBM SDK、Java Technology Edition、バージョン 17 を使用して、ディレクトリ CDC_Kafka_installation_directory/samples 内の 1 つ以上の *PropertiesExitSample.java ファイルを修正およびコンパイルします。
    $ cd CDC_Kafka_installation_directory/samples
    $ javac -classpath "CDC_Kafka_installation_directory/lib/*"
    CDC_Kafka_installation_directory/samples/KafkaConsumerPropertiesExitSample.java
  2. 以下のコマンドを使用して、コンパイルされたクラスを移動してください:
    $ mkdir CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka
    $ mv CDC_Kafka_installation_directory/samples/*.class CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka

    また、コンパイルされたクラスをJARファイルにパッケージ化することもできます。 Kafka 用のCDC Replication Engineをコンテナ内で実行している場合は、ファイル .class またはJARを に移動してください CDC_Kafka_instance_directory/instance/<instance name>/lib。 依存関係もすべてコピーしてください。 CDCユーザーがこれらのライブラリの所有者になるように所有権を変更してください。

  3. Kafka データストアのCDCレプリケーションエンジンを停止します。
  4. カスタムクラスパスを通じて、CDCがクラスを利用できるようにします。

    ファイルを作成します instance/<instance name>/conf/user.cp。 ファイル .class へのパスを指定してください。 クラスがJARファイルとしてパッケージ化されている場合は、JARファイルへの絶対パス(例: /path/to/file.jar)を指定し、それをに追加してください user.cp

  5. Kafka データストア用のCDCレプリケーションエンジンを起動します。
  6. 管理コンソールで以下のシステムパラメータを設定し、ユーザー・エグジットを有効にします:
    kafka_consumer_prop_exit_name=com.ibm.cdc.kafka.KafkaConsumerPropertiesExitSample
    kafka_producer_prop_exit_name=com.ibm.cdc.kafka.KafkaProducerPropertiesExitSample
  7. レプリケーションを終了し、その後レプリケーションを再開して、アクティブなサブスクリプションに対して Kafka のプロデューサーおよびコンシューマーのプロパティ終了を有効にします。