Connessione di IBM® MQ a Event Streams utilizzando il servizio Kubernetes

Ottieni il runtime Kafka Connect da eseguire in un cluster IBM Cloud® Kubernetes Service. Quindi, avvia il connettore di origine IBM MQ per copiare i messaggi da un topic IBM MQ di origine a un topic Kafka di destinazione in Event Streams.

Il connettore di origine IBM MQ si connette a un gestore code IBM MQ e utilizza i dati del messaggio MQ da una coda MQ. Il Connector converte ogni messaggio MQ in un record Kafka e invia il messaggio a un argomento Kafka Event Streams.

Passo 1. Installare i prerequisiti

Assicurati di avere installati i seguenti software e servizi:

  • Un'istanza di Event Streams - Piano Standard o Enterprise.

  • Un'istanza di IBM MQ on Cloud o IBM MQ Versione 8o successiva.

    Puoi configurare il connettore IBM MQ per l'autenticazione con IBM MQ utilizzando un ID utente e una password. Si consiglia di concedere le seguenti autorizzazioni solo all'identità associata a un'istanza del bridge MQ:

    • Autorizzazione CONNECT. IBM MQ Connector deve essere in grado di connettersi al gestore code MQ.
    • Autorizzazione GET per la coda da cui il connettore IBM MQ è configurato per l'utilizzo.
  • Un cluster Kubernetes Service. Puoi eseguirlo gratuitamente per scopi di test.

    Hai anche bisogno dell'accesso CLI al tuo cluster. Per ulteriori informazioni, vedi Configurazione della CLI e dell'API.

  • Una versione recente di kubectl

  • Git

Passo 2. Clona i repository kafka - connect

Clona i seguenti due repository che contengono i file richiesti:

Passo 3. Crea la tua configurazione Kafka Connect

  1. È necessario impostare questa configurazione solo una volta. Event Streams lo memorizza per un utilizzo futuro.

    Dal progetto event - streams - samples, passa a kafka-connect/IKS directory, modifica il file connect-distributed.properties e sostituisci <BOOTSTRAP_SERVERS>; in un luogo e <APIKEY> in tre luoghi con le tue credenziali Event Streams.

    Fornire <BOOTSTRAP_SERVERS> come elenco separato da virgole. Se non sono validi, si riceve un errore.

    Il tuo <APIKEY> appare in testo chiaro sulla tua macchina ma è segreto quando ne viene eseguito il push a Kubernetes Service.

    Kafka Connect può eseguire più nodi di lavoro per motivi di affidabilità e scalabilità. Se il tuo cluster Kubernetes Service ha più di un nodo e vuoi più nodi di lavoro Connect, modifica il file kafka-connect.yaml e modifica la voce replicas: 1.

  2. Quindi, eseguire i seguenti comandi.

    Per creare un segreto, esegui questo comando:

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

    Per creare una configmap, eseguire il seguente comando:

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

Passo 4. Distribuisci Kafka Connect

Applicare la configurazione nel file kafka-connect.yaml eseguendo il seguente comando:

kubectl apply -f ./kafka-connect.yaml

Passo 5. Convalida dell'esecuzione di Kafka Connect

Per convalidare che Kafka Connect è in esecuzione, inoltra la porta al servizio kafkaconnect sulla porta 8083, come nel seguente esempio.

kubectl port-forward service/kafkaconnect-service 8083

Mantenere aperto il terminale utilizzato per l'inoltro della porta e utilizzare un altro terminale per i passi successivi.

L'API REST Connect è quindi disponibile all'indirizzo http://localhost:8083. Se vuoi ulteriori informazioni sull'API, vedi Interfaccia RESTKafka Connect.

Quindi, disponi ora del runtime Kafka Connect distribuito e in esecuzione in Kubernetes Service. Configura e avvia quindi il connettore IBM MQ.

Passo 6. Configura il file JSON di origine mq

Modificare il file mq-source.json che si trova in kafka-connect-mq-source/config in modo che, come minimo, le proprietà richieste siano completate con le proprie informazioni.

Proprietà file mq-source.json

Sostituire i segnaposto nel file mq-source.json con i propri valori.

ARGOMENTO
Obbligatorio. Nome dell'argomento Kafka di destinazione.
GESTORE_CODA
Obbligatorio. Nome del gestore code IBM MQ di origine.
CODA
Obbligatorio. Nome della coda IBM MQ di origine.
CHANNEL_NOME
Obbligatorio (a meno che tu stia utilizzando le associazioni o un file CCDT). Nome del canale di connessione server.
ELENCO_NOME_CONNESSIONE
Obbligatorio (a meno che tu stia utilizzando le associazioni o un file CCDT). Un elenco di una o più coppie host(porta) per la connessione al gestore code. Separa le voci con una virgola.

Passo 7. Avviare il connettore con la relativa configurazione

Immetti il seguente comando per avviare il connettore IBM MQ con la configurazione che hai fornito nel passo precedente.

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

Passo 8. Monitorare il connettore

È possibile controllare il connettore andando al seguente indirizzo:

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

Se lo stato del connettore non è in esecuzione, riavvialo.