使用 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 V 8或更高版本的实例。
您可以配置 IBM MQ 连接器,以使用用户标识和密码向 IBM MQ 进行认证。 我们建议您仅对与 MQ 网桥实例关联的身份授予以下许可权:
- CONNECT 权限。 IBM MQ 连接器必须能够连接到 MQ 队列管理器。
- 对配置为从中使用 IBM MQ 连接器的队列的 GET 权限。
-
Kubernetes Service 集群。 您可以免费供应一个用于测试目的。
您还需要对集群的 CLI 访问权。 有关更多信息,请参阅设置 CLI 和 API。
-
Kubectl 的最新版本
步骤 2. 克隆 kafka-connect 存储库
克隆包含必需文件的以下两个存储库:
步骤 3. 创建 Kafka Connect 配置
-
必须仅设置此配置一次。Event Streams 将其存储以供将来使用。
从 event-streams-samples 项目中,浏览至
kafka-connect/IKS directory
,编辑connect-distributed.properties
文件,并将<BOOTSTRAP_SERVERS>
替换为一个位置,将<APIKEY>
替换为三个位置的 Event Streams 凭证。以逗号分隔列表形式提供
<BOOTSTRAP_SERVERS>
。 如果它们无效,那么您将收到错误。<APIKEY>
在您的机器上以明文显示,但在推送到 Kubernetes Service时是私钥。为了实现可靠性和可伸缩性,Kafka Connect 可以运行多个工作程序。 如果 Kubernetes Service 集群具有多个节点,并且您需要多个 Connect 工作程序,请编辑
kafka-connect.yaml
文件并编辑条目replicas: 1
。 -
然后,运行以下命令。
要创建私钥,请运行以下命令:
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 主题的名称。
- QUEUE_MANAGER
- 必需。 源 IBM MQ 队列管理器的名称。
- 队列
- 必需。 源 IBM MQ 队列的名称。
- channel_name
- 必需(除非使用了绑定或 CCDT 文件)。 服务器连接通道的名称。
- 连接 _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
如果连接器的状态不是“正在运行”,请重新启动连接器。