Event Streams での Kafka Connect の使用

Kafka Connect は、Apache Kafka プロジェクトの一部であり、外部システムを Kafka に接続するのを可能にします。 これは、クラスタとの間でデータをコピーするための コネクタ を実行できるランタイムで構成されている。 主な特性は次のとおりです。

  • スケーラビリティー: 単一のワーカーから多数のワーカーまで、スケールを容易に調整できます。
  • 信頼性: コネクターのオフセットとライフサイクルを自動的に管理します。
  • 拡張性: コミュニティーは、最も一般的なシステム用のコネクターを構築しました。 IBM® には、 MQ および Cloud Object Storage 用のコネクターがあります。

Kafka Connect を IBM® Event Streams for IBM Cloud® と共に使用することができ、 IBM Cloud®の内部または外部でワーカーを実行できます。 IBM には、50 個を超える IBMid コネクターの広範なリストがあります。 これらのコネクターは、 コネクター・カタログ にあります。

Kafka Connect は、スタンドアロン・モードまたは分散モードで実行することができます。 スタンドアロン・モードは、テストのため、そしてシステム間の一時的な接続のためのものです。 分散モードは、実動環境での使用に適しています。 これらの 2 つのモードでは、Event Streams を使用するために必要な構成が少し異なります。

スタンドアロン・ワーカーの構成

スタンドアロン・ワーカーは、内部トピックを使用しません。 代わりにファイルを使用してオフセット情報を保管します。

Kafka Connect スタンドアロン・ワーカーを開始するときに提供するワーカー・プロパティー・ファイルに、ブートストラップ・サーバーと SASL 資格情報の情報を指定する必要があります。 以下の例では、プロパティー・ファイルに指定する必要のあるプロパティーがリストされています。

    bootstrap.servers=BOOTSTRAP_ENDPOINTS
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    ssl.protocol=TLSv1.2
    ssl.enabled.protocols=TLSv1.2
    ssl.endpoint.identification.algorithm=HTTPS

Replace BOOTSTRAP_ENDPOINTS, USER, and PASSWORD with the values from your Event Streams サービス資格 tab in the IBM Cloud console.

ソース・コネクター

以下の例では、プロパティー・ファイルに指定する必要のあるプロパティーがリストされています。

    bootstrap.servers=BOOTSTRAP_ENDPOINTS
    producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    producer.security.protocol=SASL_SSL
    producer.sasl.mechanism=PLAIN
    producer.ssl.protocol=TLSv1.2
    producer.ssl.enabled.protocols=TLSv1.2
    producer.ssl.endpoint.identification.algorithm=HTTPS

Replace BOOTSTRAP_ENDPOINTS, USER, and PASSWORD with the values from your Event Streams サービス資格 tab in the IBM Cloud console.

シンク・コネクター

以下の例では、プロパティー・ファイルに指定する必要のあるプロパティーがリストされています。

    bootstrap.servers=BOOTSTRAP_ENDPOINTS
    consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    consumer.security.protocol=SASL_SSL
    consumer.sasl.mechanism=PLAIN
    consumer.ssl.protocol=TLSv1.2
    consumer.ssl.enabled.protocols=TLSv1.2
    consumer.ssl.endpoint.identification.algorithm=HTTPS

Replace BOOTSTRAP_ENDPOINTS, USER, and PASSWORD with the values from your Event Streams サービス資格 tab in the IBM Cloud console.

分散ワーカーの構成

Kafka Connect 分散ワーカーを開始するときに提供するプロパティー・ファイルに、ブートストラップ・サーバーと SASL 資格情報の情報を指定する必要があります。 以下の例では、プロパティー・ファイルに指定する必要のあるプロパティーがリストされています。

    bootstrap.servers=BOOTSTRAP_ENDPOINTS
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    ssl.protocol=TLSv1.2
    ssl.enabled.protocols=TLSv1.2
    ssl.endpoint.identification.algorithm=HTTPS

Replace BOOTSTRAP_ENDPOINTS, USER, and PASSWORD with the values from your Event Streams サービス資格 tab in the IBM Cloud console.

ソース・コネクターを使用する場合は、以下のように、プロデューサーの SSL 構成と SASL 構成も指定する必要があります。

    producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    producer.security.protocol=SASL_SSL
    producer.sasl.mechanism=PLAIN
    producer.ssl.protocol=TLSv1.2
    producer.ssl.enabled.protocols=TLSv1.2
    producer.ssl.endpoint.identification.algorithm=HTTPS

シンク・コネクターを使用する場合は、以下のように、コンシューマーの SSL 構成と SASL 構成も指定する必要があります。

    consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
    consumer.security.protocol=SASL_SSL
    consumer.sasl.mechanism=PLAIN
    consumer.ssl.protocol=TLSv1.2
    consumer.ssl.enabled.protocols=TLSv1.2
    consumer.ssl.endpoint.identification.algorithm=HTTPS

さらに、分散モードの Kafka Connect は、内部的に 3 つのトピックを使用します。 Kafka Connect を Apache Kafka バージョン 0.11 以降で使用する場合、これらのトピックはワーカーの開始時に自動的に作成されます。 トピックの名前は構成パラメーターとして指定します。 これらの値は、group.id 構成値が等しいすべてのワーカーで同じになるようにしてください。

KafkaConnectのトピック
構成 説明
offset.storage.topic コネクター・オフセット・トピック
offset.storage.partitions コネクター・オフセット・トピックのパーティション数 (デフォルトは 25)
config.storage.topic コネクター構成トピック
status.storage.topic コネクター状況トピック
status.storage.partitions コネクター状況トピックのパーティション数 (デフォルトは 5)

例えば、以下のキーと値のペアをプロパティー・ファイルで使用できます。

    offset.storage.topic=connect-offsets
    config.storage.topic=connect-configs
    status.storage.topic=connect-status

Kafka Connect を少し使用するだけの場合には、パーティションの数を減らすことを検討してください。

Kafka Connect について詳しくは、 Kafka Connect の概要を参照してください。