Verbindung von IBM® MQ zu Event Streams mithilfe des Kubernetes-Service herstellen

Rufen Sie die Kafka Connect-Laufzeit für die Ausführung in einem IBM Cloud® Kubernetes Service-Cluster ab. Starten Sie anschließend den IBM MQ-Quellenconnector, um Nachrichten aus einer IBM MQ-Quellenwarteschlange in ein Ziel- Kafka-Topic in Event Streamszu kopieren.

Der Quellenconnector IBM MQ stellt eine Verbindung zu einem Warteschlangenmanager IBM MQ her und verarbeitet MQ-Nachrichtendaten aus einer MQ-Warteschlange. Der Connector wandelt jede MQ-Nachricht in einen Kafka-Datensatz um und sendet die Nachricht an ein Event Streams-Kafka-Topic.

Schritt 1. Voraussetzungen installieren

Stellen Sie sicher, dass die folgende Software und die folgenden Services installiert sind:

  • Event Streams-Instanz mit Plan "Standard" oder "Enterprise".

  • Eine Instanz von IBM MQ on Cloud oder IBM MQ Version 8oder höher

    Sie können den IBM MQ-Connector für die Authentifizierung bei IBM MQ mithilfe einer Benutzer-ID und eines Kennworts konfigurieren. Es wird empfohlen, die folgenden Berechtigungen nur für die Benutzeridentität zu erteilen, die einer Instanz der MQ-Bridge zugeordnet ist:

    • Berechtigung CONNECT. Der IBM MQ-Connector muss eine Verbindung zum MQ-Warteschlangenmanager herstellen können.
    • GET-Berechtigung für die Warteschlange, aus der der MQ-Connector IBM für den Konsum konfiguriert ist
  • Kubernetes Service-Cluster. Sie können einen für Testzwecke kostenlos bereitstellen.

    Außerdem benötigen Sie CLI-Zugriff auf Ihren Cluster. Weitere Informationen finden Sie in CLI und API einrichten.

  • Eine aktuelle Version von kubectl

  • Git

Schritt 2. kafka-connect-Repositorys klonen

Klonen Sie die folgenden beiden Repositorys, die die erforderlichen Dateien enthalten:

Schritt 3. Kafka Connect-Konfiguration erstellen

  1. Sie müssen diese Konfiguration nur einmal einrichten. Event Streams speichert sie für die zukünftige Verwendung.

    Navigieren Sie vom Projekt 'event-streams-samples' zur Datei kafka-connect/IKS directory, bearbeiten Sie die Datei connect-distributed.properties und ersetzen Sie <BOOTSTRAP_SERVERS> an einer Stelle und <APIKEY> an drei Stellen durch Ihre Event Streams-Berechtigungsnachweise.

    Geben Sie <BOOTSTRAP_SERVERS> als durch Kommas getrennte Liste an. Wenn sie nicht gültig sind, erhalten Sie einen Fehler.

    Ihr Wert für <APIKEY> wird auf Ihrem System als Klartext angezeigt, bei der Übertragung mit Push-Operation an Kubernetes Service jedoch als geheimer Schlüssel behandelt.

    Kafka Connect kann aus Gründen der Zuverlässigkeit und Skalierbarkeit mehrere Worker ausführen. Wenn Ihr Kubernetes Service -Cluster mehr als einen Knoten hat und Sie mehrere Connect-Worker wünschen, bearbeiten Sie die Datei kafka-connect.yamlund den Eintrag replicas: 1.

  2. Führen Sie anschließend die folgenden Befehle aus:

    Führen Sie den folgenden Befehl aus, um einen geheimen Schlüssel zu erstellen:

    kubectl create secret generic connect-distributed-config --from-file=connect-distributed.properties
    

    Führen Sie den folgenden Befehl aus, um eine ConfigMap zu erstellen:

    kubectl create configmap connect-log4j-config --from-file=connect-log4j.properties
    

Schritt 4. Kafka Connect bereitstellen

Wenden Sie die Konfiguration in der Datei kafka-connect.yamlan, indem Sie den folgenden Befehl ausführen:

kubectl apply -f ./kafka-connect.yaml

Schritt 5. Prüfen Sie, ob Kafka Connect ausgeführt wird

Um zu überprüfen, ob Kafka Connect ausgeführt wird, leiten Sie den Port wie im folgenden Beispiel an den Kafkaconnect-Service an Port 8083 weiter.

kubectl port-forward service/kafkaconnect-service 8083

Lassen Sie das Terminal, das Sie für die Portweiterleitung verwendet haben, geöffnet und verwenden Sie ein anderes Terminal für die nächsten Schritte.

Die Connect-REST-API ist dann unter http://localhost:8083verfügbar. Weitere Informationen zur API finden Sie unter Kafka Connect-REST-Schnittstelle.

Sie verfügen nun über die Kafka Connect-Laufzeit, die in Kubernetes Serviceimplementiert und ausgeführt wird. Als Nächstes werden Sie den Connector IBM MQ konfigurieren und starten.

Schritt 6. JSON-Datei für MQ-Quelle konfigurieren

Bearbeiten Sie die Datei mq-source.json, die sich im Verzeichnis kafka-connect-mq-source/configbefindet, sodass mindestens die erforderlichen Eigenschaften mit Ihren Informationen ausgefüllt werden.

Eigenschaften in der Datei "mq-source.json"

Ersetzen Sie die Platzhalter in der Datei mq-source.jsondurch Ihre eigenen Werte.

Thema
Erforderlich. Name des Kafka-Zieltopic.
QUEUE_MANAGER
Erforderlich. Name des IBM MQ-Quellenwarteschlangenmanagers.
QUEUE
Erforderlich. Name der IBM MQ-Quellenwarteschlange.
CHANNEL_NAME
Erforderlich (es sei denn, Sie verwenden Bindungen oder eine CCDT-Datei). Name des Serververbindungskanals.
CONNECTION_NAME_LIST
Erforderlich (es sei denn, Sie verwenden Bindungen oder eine CCDT-Datei). Eine Liste mit einem oder mehreren Host/Port-Paaren für die Verbindung zum Warteschlangenmanager. Trennen Sie die Einträge durch ein Komma.

Schritt 7. Connector mit seiner Konfiguration starten

Führen Sie den folgenden Befehl aus, um IBM MQ Connector mit der Konfiguration zu starten, die Sie im vorherigen Schritt angegeben haben.

curl -X POST -H "Content-Type: application/json" http://localhost:8083/connectors --data "@./mq-source.json"

Schritt 8. Connector überwachen

Sie können Ihren Connector überprüfen, indem Sie die folgende Adresse aufrufen:

http://localhost:8083/connectors/mq-source/status

Falls für den Connector nicht der Status "running" (aktiv) angegeben ist, starten Sie den Connector erneut.