Connexion de IBM® MQ à Event Streams à l'aide du service Kubernetes

Obtenez l'environnement d'exécution Kafka Connect à exécuter dans un cluster IBM Cloud® Kubernetes Service. Démarrez ensuite la file d'attente source IBM MQ Source Connector pour copier les messages d'une file d'attente source IBM MQ vers une rubrique Kafka de destination dans Event Streams.

Le connecteur source IBM MQ se connecte à un gestionnaire de files d'attente IBM MQ et consomme des données de message MQ à partir d'une file d'attente MQ. Le connecteur convertit chaque message MQ en un enregistrement Kafka et envoie le message à une rubrique Kafka Event Streams.

Étape 1. Installation des prérequis

Vérifiez que le logiciel et les services suivants sont installés :

  • Une instance Event Streams - plan Standard ou Enterprise.

  • Une instance de IBM MQ on Cloud ou IBM MQ version 8ou ultérieure.

    Vous pouvez configurer le connecteur IBM MQ pour l'authentification auprès de IBM MQ à l'aide d'un identificateur utilisateur et d'un mot de passe. Il est conseillé d'accorder les droits suivants uniquement à l'identité associée à une instance du pont MQ :

    • Droits CONNECT. Le connecteur IBM MQ doit pouvoir se connecter au gestionnaire de files d'attente MQ.
    • Droit GET sur la file d'attente à partir de laquelle le connecteur IBM MQ est configuré pour consommer.
  • Un cluster Kubernetes Service. Vous pouvez en mettre un à disposition à des fins de test gratuitement.

    Vous avez également besoin d'un accès CLI à votre cluster. Pour plus d'informations, voir Configuration de l'interface de ligne de commande et de l'API.

  • Une version récente de kubectl

  • Git

Étape 2. Clonez les référentiels de connexion Kafka

Clonez les deux référentiels suivants qui contiennent les fichiers requis :

Étape 3. Création de votre configuration Kafka Connect

  1. Vous devez configurer cette configuration une seule fois. Event Streams la conservera pour les utilisations ultérieures.

    A partir du projet event-streams-samples, accédez à kafka-connect/IKS directory, éditez le fichier connect-distributed.properties et remplacez <BOOTSTRAP_SERVERS>; à un emplacement et <APIKEY> à trois emplacements par vos données d'identification Event Streams.

    Indiquez <BOOTSTRAP_SERVERS> comme liste séparée par des virgules. Si elles ne sont pas valides, vous obtenez une erreur.

    Votre <APIKEY> apparaît en clair sur votre machine, mais il est secret lorsqu'il est envoyé vers Kubernetes Service.

    Kafka Connect peut exécuter des noeuds worker multiples pour des raisons de fiabilité et d'évolutivité. Si votre cluster Kubernetes Service comporte plusieurs nœuds et que vous souhaitez plusieurs processus Connect, éditez le fichier kafka-connect.yaml et éditez l'entrée replicas: 1.

  2. Exécutez ensuite les commandes suivantes.

    Pour créer un secret, exécutez la commande suivante:

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

    Pour créer une mappe de configuration, exécutez la commande suivante:

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

Étape 4. Déployez Kafka Connect

Appliquez la configuration dans le fichier kafka-connect.yaml en exécutant la commande suivante :

kubectl apply -f ./kafka-connect.yaml

Étape 5. Validation de Kafka Connect en cours d'exécution

Pour vérifier que Kafka Connect est en cours d'exécution, effectuez un transfert de port vers kafkaconnect-service sur le port 8083, comme dans l'exemple suivant.

kubectl port-forward service/kafkaconnect-service 8083

Conservez le terminal que vous avez utilisé pour le transfert de port ouvert et utilisez un autre terminal pour les étapes suivantes.

L'API REST de Connect est alors disponible à l'adresse http://localhost:8083. Pour plus d'informations sur l'API, voir Interface RESTKafka Connect.

Par conséquent, vous disposez maintenant de l'environnement d'exécution Kafka Connect déployé et en cours d'exécution dans Kubernetes Service. Ensuite, configurons et démarrez le connecteur IBM MQ.

Étape 6. Configuration du fichier json mq-source

Éditez le fichier mq-source.json situé dans kafka-connect-mq-source/config de sorte que, au minimum, les propriétés requises soient remplies avec vos informations.

Propriétés du fichier mq-source.json

Remplacez les espaces réservés du fichier mq-source.json par vos propres valeurs.

Topic
Obligatoire. Nom de la rubrique Kafka de destination.
QUEUE_MANAGER
Obligatoire. Nom du gestionnaire de files d'attente IBM MQ source.
File d'attente
Obligatoire. Nom de la file d'attente IBM MQ source.
CHANNEL_NAME
Requis (sauf si vous utilisez des liaisons ou un fichier CCDT). Nom du canal de connexion serveur.
CONNECTION_NAME_LIST
Requis (sauf si vous utilisez des liaisons ou un fichier CCDT). Liste contenant au moins une paire hôte-port pour la connexion au gestionnaire de files d'attente. Séparez les entrées à l'aide d'une virgule.

Etape 7. Démarrer le connecteur avec sa configuration

Exécutez la commande suivante pour démarrer le connecteur IBM MQ avec la configuration que vous avez fournie à l'étape précédente.

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

Étape 8. Contrôler votre connecteur

Vous pouvez vérifier votre connecteur à l'adresse suivante :

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

Si l'état indique que le connecteur ne s'exécute pas, redémarrez-le.