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
Schritt 2. kafka-connect-Repositorys klonen
Klonen Sie die folgenden beiden Repositorys, die die erforderlichen Dateien enthalten:
Schritt 3. Kafka Connect-Konfiguration erstellen
-
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 Dateiconnect-distributed.propertiesund 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 Eintragreplicas: 1. -
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.propertiesFü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.