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 構成値が等しいすべてのワーカーで同じになるようにしてください。
| 構成 | 説明 |
|---|---|
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 の概要を参照してください。