Kafka Connect mit Event Streams verwenden

Kafka Connect ist Teil des Apache Kafka-Projekts und ermöglicht die Verbindung von externen Systemen zu Kafka. Es besteht aus einer Laufzeitumgebung, die Konnektoren zum Kopieren von Daten in und aus einem Cluster ausführen kann. Die Kafka-Komponente zeichnet sich im Wesentlichen durch folgende Merkmale aus:

  • Skalierbarkeit: Eine Skalierung von einem einzelnen Worker auf viele Worker ist problemlos möglich.
  • Zuverlässigkeit: Offsets und der Lebenszyklus von Connectors werden automatisch verwaltet.
  • Erweiterbarkeit: Die Community erstellte Connectors für die gängigsten Systeme. IBM® verfügt über Connectors für MQ und Cloud Object Storage.

Sie können Kafka Connect with IBM® Event Streams for IBM Cloud® verwenden und die Worker innerhalb oder außerhalb von IBM Cloud®ausführen. IBM verfügt über eine umfangreiche Liste mit über 50 Connectors, die von IBM oder der Community unterstützt werden. Sie finden diese Connectors im Connectorkatalog.

Kafka Connect kann im eigenständigen oder im verteilten Modus ausgeführt werden. Der eigenständige Modus ist für Testzwecke und temporäre Verbindungen zwischen Systemen konzipiert. Der verteilte Modus ist besser für den Produktionseinsatz geeignet. Die Konfiguration, die für die Verwendung von Event Streams mit diesen beiden Modi erforderlich ist, weist geringfügige Unterschiede auf.

Konfiguration für eigenständige Worker

Der eigenständige Worker verwendet keine internen Topics. Stattdessen verwendet er eine Datei zum Speichern von Offsetinformationen.

Sie müssen die Bootstrap-Server und die SASL-Berechtigungsnachweisinformationen in der Workereigenschaftendatei angeben, die Sie beim Starten eines eigenständigen Kafka Connect-Workers angeben. Im folgenden Beispiel sind die Eigenschaften aufgeführt, die in der Eigenschaftendatei angegeben werden müssen:

    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

Ersetzen Sie BOOTSTRAP_ENDPOINTS, USER und PASSWORD durch die Werte aus Ihrer Event Streams Registerkarte " Service Credentials" in der IBM Cloud.

Quellenconnector

Im folgenden Beispiel sind die Eigenschaften aufgeführt, die in der Eigenschaftendatei angegeben werden müssen:

    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

Ersetzen Sie BOOTSTRAP_ENDPOINTS, USER und PASSWORD durch die Werte aus Ihrer Event Streams Registerkarte " Service Credentials" in der IBM Cloud.

Zielconnector

Im folgenden Beispiel sind die Eigenschaften aufgeführt, die in der Eigenschaftendatei angegeben werden müssen:

    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

Ersetzen Sie BOOTSTRAP_ENDPOINTS, USER und PASSWORD durch die Werte aus Ihrer Event Streams Registerkarte " Service Credentials" in der IBM Cloud.

Konfiguration für verteilte Worker

Sie müssen die Bootstrap-Server und die SASL-Berechtigungsnachweisinformationen in der Eigenschaftendatei angeben, die Sie beim Starten der eigenständigen Kafka Connect-Worker angeben. Im folgenden Beispiel sind die Eigenschaften aufgeführt, die in der Eigenschaftendatei angegeben werden müssen:

    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

Ersetzen Sie BOOTSTRAP_ENDPOINTS, USER und PASSWORD durch die Werte aus Ihrer Event Streams Registerkarte " Service Credentials" in der IBM Cloud.

Wenn Sie einen Quellenconnector verwenden möchten, müssen Sie auch die SSL- und SASL-Konfiguration für den Producer wie folgt angeben:

    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

Wenn Sie einen Zielconnector verwenden möchten, müssen Sie auch die SSL- und SASL-Konfiguration für den Consumer wie folgt angeben:

    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

Darüber hinaus verwendet Kafka Connect im verteilten Modus drei Topics intern. Diese Topics werden beim Start eines Workers automatisch erstellt, wenn Kafka Connect in Apache Kafka Version 0.11 oder höher verwendet wird. Geben Sie die Namen der Topics als Konfigurationsparameter an. Stellen Sie sicher, dass die Werte für alle Worker, die denselben Konfigurationswert für group.id aufweisen, identisch sind.

Themen in Kafka Connect
Konfiguration Beschreibung
offset.storage.topic Connector-Offsets-Topic
offset.storage.partitions Anzahl der Partitionen für Connector-Offsets-Topic (Standardwert 25)
config.storage.topic Connectorkonfigurationstopic
status.storage.topic Connectorstatustopic
status.storage.partitions Anzahl der Partitionen für Connectorstatustopic (Standardwert 5)

Sie können beispielsweise die folgenden Schlüssel/Wert-Paare in den Eigenschaftendateien verwenden:

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

Wenn Sie Kafka Connect nicht häufig verwenden, können Sie die Anzahl der Partitionen reduzieren.

Weitere Informationen zu Kafka Connect finden Sie unter Kafka Connect-Übersicht.