使用 Kubernetes 服務將 IBM® MQ 連接至 Event Streams

取得 Kafka Connect 執行時期以在 IBM Cloud® Kubernetes Service 叢集中執行。 然後,啟動 IBM MQ 來源連接器,以將訊息從 IBM MQ 來源佇列複製到 Event Streams中的目的地 Kafka 主題。

IBM MQ 來源連接器會連接至 IBM MQ 佇列管理程式,並耗用來自 MQ 佇列的 MQ 訊息資料。 連接器會將每個 MQ 訊息轉換成 Kafka 記錄,並將訊息傳送至 Event Streams Kafka 主題。

步驟 1. 安裝必備項目

確保已安裝下列軟體和服務:

  • Event Streams 實例 - 標準方案或企業方案。

  • IBM MQ on Cloud 或 IBM MQ 第 8 版或更新版本的實例。

    您可以使用使用者 ID 及密碼來配置 IBM MQ 連接器,以向 IBM MQ 進行鑑別。 建議您將下列許可權只授與給與 MQ 橋接器實例相關聯的身分:

    • CONNECT 權限。 IBM MQ 連接器必須能夠連接至 MQ 佇列管理程式。
    • IBM MQ 連接器配置為從中取用之佇列的 GET 權限。
  • Kubernetes Service 叢集。 您可以免費佈建一個用於測試目的。

    您也需要叢集的 CLI 存取權。 如需相關資訊,請參閱設定 CLI 和 API。

  • 最新版本的 kubectl

  • Git

步驟 2. 複製 kafka-connect 儲存庫

複製包含必要檔案的下列兩個儲存庫:

步驟 3. 建立 Kafka Connect 配置

  1. 您必須只設定此配置一次。Event Streams 會儲存它以供未來使用。

    從 event-streams-samples 專案中,導覽至 kafka-connect/IKS directory,編輯 connect-distributed.properties 檔案,並將 <BOOTSTRAP_SERVERS> 取代為 Event Streams 認證的一個位置,並將 <APIKEY> 取代為三個位置。

    以逗點區隔清單形式提供 <BOOTSTRAP_SERVERS>。 如果它們無效,您會收到錯誤。

    您的 <APIKEY> 在機器上以明碼顯示,但在推送至 Kubernetes Service時是密鑰。

    為了獲得可靠性和可調整性,Kafka Connect 可以執行多個工作者節點。 如果 Kubernetes Service 叢集有多個節點,且您想要多個 Connect 工作者節點,請編輯 kafka-connect.yaml 檔案,並編輯 replicas: 1 項目。

  2. 然後,執行下列指令。

    若要建立密鑰,請執行下列指令:

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

    若要建立 configmap,請執行下列指令:

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

步驟 4. 部署 Kafka Connect

執行下列指令,以套用 kafka-connect.yaml 檔中的配置:

kubectl apply -f ./kafka-connect.yaml

步驟 5. 驗證 Kafka Connect 正在執行中

若要驗證 Kafka Connect 正在執行中,請將埠轉遞至埠 8083 上的 kafkaconnect-service,如下列範例中所示。

kubectl port-forward service/kafkaconnect-service 8083

保持開啟您用於埠轉遞的終端機,並使用另一個終端機進行後續步驟。

然後可以在 http://localhost:8083 中使用 Connect REST API。 如果您想要 API 的相關資訊,請參閱 Kafka Connect REST 介面。

因此,現在您已在 Kubernetes Service中部署並執行 Kafka Connect 執行時期。 接下來,讓我們配置並啟動 IBM MQ 連接器。

步驟 6. 配置 mq-source JSON 檔案

編輯位於 kafka-connect-mq-source/config 中的 mq-source.json 檔,以便至少以您的資訊來完成必要的內容。

mq-source.json 檔案內容

將 mq-source.json 檔案中的位置保留元取代為您自己的值。

主題
必要。 目的地 Kafka 主題的名稱。
佇列管理程式
必要。 來源 IBM MQ 佇列管理程式的名稱。
佇列
必要。 來源 IBM MQ 佇列的名稱。
CHANNEL_NAME
必要(除非您使用連結或 CCDT 檔)。 伺服器連線頻道的名稱。
CONNECTION_NAME_LIST
必要(除非您使用連結或 CCDT 檔)。 用於連接至佇列管理程式的一個以上主機(埠)配對的清單。 請使用逗點來區隔項目。

步驟 7. 啟動連接器及其配置

執行下列指令,以使用您在前一個步驟中提供的配置來啟動 IBM MQ 連接器。

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

步驟 8. 監視連接器

您可以移至下列位址來檢查連接器:

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

如果連接器的狀態不是「執行中」,請重新啟動連接器。