开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

针对开发者的 IBM MQ 下载项

如果您准备开始编程,直接跳至开发资源

在开发 IBM MQ 应用程序之前,您需要一个可与应用程序进行交互的队列或主题。IBM MQ 队列和主题都托管在队列管理器上。队列管理器是用于托管队列和主题的服务器。您的应用程序将作为客户端连接到 IBM MQ。

要开发 IBM MQ 应用程序,您只需要:

获取队列管理器(MQ 服务器)

您可以在许多不同的环境(包括不同的云)上运行队列管理器(MQ 服务器)。

您可以下载最新的免费版 IBM MQ Advanced for Developers(不适用于生产环境),其中包括具有默认队列和主题的队列管理器,以便您快速入门。

按照这些教程中的说明来开始使用队列管理器:

如果您知道如何操作,或者需要其他版本或其他 IBM MQ 服务器安装程序,参阅面向管理员的 IBM MQ 下载项页面。

获取 MQ 客户端库

要开发 MQ 应用程序,您需要一个队列管理器和以下三项:

  1. 适用于您的语言和平台的 MQ 客户端库
  2. 编译器(在 Windows 上,使用 Microsoft Visual Studio。在 MacOS 上,使用 XCode。在 Linux 上,使用 GCC。对于 Java,SDK 中已经包含了编译器。)
  3. 适用于您的语言的 SDK

MQ 允许您选择不同的 API 和协议。参阅下一部分中的表格,以查看哪种语言可与哪种 API 和协议一起使用。

您可以使用我们的一种可再分发客户端 (redist) 在部署应用程序的位置运行该应用程序。只需下载可再分发的客户端库即可。然后,您必须将应用程序与用于目标环境的可再分发库打包在一起。在 Knowledge Center 内的 IBM MQ 文档中了解如何执行此操作(并务必阅读关于再分发 MQ 客户端的许可信息)。

语言、API 和协议

您可以根据所使用的语言来选择 API 和协议。API 的功能和易用程度各不相同,因此在选择 API 时应该考虑您应用程序的需求。协议通常对应用程序是隐藏的,因此,除非您已经知道要使用特定协议,否则不需要担心协议的问题。

在给定的 API 和协议组合下,您可以执行的操作会有所不同,因为并非所有的 API 和协议都提供完全相同的消息传递功能。

除了 IBM 支持的库外,MQ 应用程序开发者还可以使用许多第三方库和开源库。参阅表格下方适用于您的语言的注释和段落。

语言 API 协议
Java JMS MQ
Java MQTT MQTT (1)
Java REST (2) HTTP/HTTPS
Java MQ Light (3) AMQP 1.0 (4)
C# (.NET) XMS MQ
C# (.NET) MQ Object Oriented MQ
Python MQ Light (3) AMQP 1.0 (4)
Python MQI(带有 pymqi) (5) MQ
Python REST (2) HTTP/HTTPS
Node.js MQI MQ
Node.js REST (2) HTTP/HTTPS
Node.js MQ Light (3) AMQP 1.0 (4)
Ruby MQ Light (3) AMQP 1.0 (4)
C++ XMS MQ
C++ MQI MQ
C++ MQ Object Oriented MQ
C MQI MQ
C XMS MQ
COBOL MQI MQ
HLASM(高级汇编器) MQI MQ
PL/1 MQI MQ
pTAL MQI MQ
RPG – IBMi MQI MQ

(1) MQTT 协议非常适合开发 IoT 应用程序,或者在带宽受限且需要较小消息开销的情况下使用。IBM MQ 支持 MQTT 3.1.1 协议。可以使用 Eclipse Paho 客户端来连接到 IBM MQ。

(2) 消息传递 REST API 可用于与队列进行交互,并且从 V9.1.5 开始,可用于发布主题。有关更多信息,参阅 “IBM MQ 消息传递 REST API 入门”教程和 IBM MQ Knowledge Center 中的“使用 REST API 进行消息传递”。

(3) 在我们的 MQ Light GitHub 代码库中提供了多种语言版本的 MQ Light 客户端。

(4) AMQP 是一种开放标准的线路层协议,在使用开源库的开发者中很受欢迎。IBM MQ 仅支持一部分 AMQP1.0 功能,并用于增强 MQ Light API。

(5) pymqi 是一个受欢迎的第三方库。除了 pymqi 提供的示例外,另参阅 GitHub 代码库中的 Python 样本

Java

Java(适用于 Java 的 MQ 类)和 Java 消息服务(适用于 Java 的 MQ JMS 类)现在都是很受欢迎的选择,它们适合于下列开发者:打算开发要在应用程序服务器(如 Liberty 服务器概要文件)上运行的应用程序的开发者,或者希望使用 Spring 进行开发的开发者。它们还适用于开发独立的 Java SE 和 Java EE 应用程序。适用于 Java 的 MQ 类具有与原生 MQI API 相似的 API,因此您可以开发与 MQI 更紧密结合的应用程序。 Java 消息服务 (JMS) 是一种开放标准 API,可用于开发与特定消息传递提供者紧密耦合的消息传递应用程序。适用于 Java 的 MQ JMS 类都实现了 JMS 标准。

我们提供了跨平台的库(包括“适用于 Java 的 MQ 类”和“适用于 Java 的 MQ JMS 类”),这些库打包在 com.ibm.allclient jar 文件中。

您可以选择使用以下方式来获取 MQ Java/JMS 库。

对于 JMS,您还需要:

对于 Spring Boot,使用适用于 Java 的 Spring Boot 启动器

对于在 Java EE 上运行的应用程序,使用 MQ Resource Adaptor 代替 allclient 库。

要使用 Java 和 REST,参阅 “IBM MQ 消息传递 REST API 入门”教程和 IBM MQ Knowledge Center 中的“使用 REST API 进行消息传递”。

要将 Java 与 MQTT 一起使用,参阅 Eclipse Paho 客户端

要将 Java 与 MQ Light 一起使用,参阅 MQ Light GitHub 代码库Maven 中的 Java 客户端。

要了解如何使用 MQ 类进行开发,阅读 Knowledge Center 中的 IBM MQ 文档

适用于 Java 的 MQ 类已经很稳定,这意味着除了修复缺陷和确保满足系统需求外,不会再添加任何新功能。

C# (.NET)

我们提供了 XMS(这是一种适用于 .NET 的类似于 JMS 的 API),还提供了一个基于 MQI 的低级别 API,称为“适用于 .NET 的 MQ 类”。

选择客户端、可再分发客户端或 NuGet 包(这样就万事俱备了):

Windows Linux Mac
Pull pkg C# (.NET) XMS IBMXMSDotnetClient IBMXMSDotnetClient 不适用
Pull pkg C# (.NET) IBMMQDotnetClient IBMMQDotnetClient 不适用
Redist (grab & go) MQ 下载 IBM-MQC-Redist-Win64.zip IBM-MQC-Redist-LinuxX64.tar.gz 不适用
Redist (Fix Central) IBM-MQC-Redist-Win64 IBM-MQC-Redist-LinuxX64 不适用
Client (Fix Central) IBM-MQC-Win64 IBM-MQC-LinuxX64IBM-MQC-UbuntuLinuxX64 不适用

要开始开发 .NET 应用程序,参阅我们的 GitHub 代码库中的 IBM MQ XMS 样本。 要了解如何开发 .NET 应用程序阅读 Knowledge Center 中的 IBM MQ 文档

Node.js

我们通过 npmGitHub 代码库提供了适用于 MQI API 的 Node.js 包装器库,该库可与适用于您操作系统的 MQ 客户端库结合使用。获取适用于您操作系统的客户端或可再分发客户端:

要使用 MQ Light API 来开发 Node.js 应用程序,参阅我们的 GitHub 代码库npm 包

要开始开发 Node.js 应用程序,参阅我们的 GitHub 代码库中的 IBM MQ Node.js 样本

Golang

IBM 提供了适用于 MQI API 的开源 Golang 包装器库,该库可与适用于您操作系统的 MQ 客户端库结合使用。 另参阅适用于 Go 程序的开源类似于 JMS 的包装器

要开始开发 Golang 应用程序,参阅我们的 GitHub 代码库中的 IBM MQ Golang 样本

Python

您可以将 pymqi 开源包装器库与适用于您操作系统的 MQ 客户端库结合使用。

pymqi 是一个受欢迎的第三方库。除了 pymqi 提供的示例外,另参阅此 GitHub 代码库中的 Python 样本

Ruby

要开发 Ruby 应用程序,参阅我们的 MQ Light GitHub 代码库MQ Light Ruby Gem

C

C 涵盖了最全面的 MQI 内容,对于要构建高度优化的 IBM MQ 应用程序的开发者而言非常受欢迎。

C++

C++ 开发者可以直接与 MQI 进行交互,还可以使用 XMS,后者提供了类似于 JMS 的消息传递抽象。

也可以将 MQ Object Oriented 库与 C++ 结合使用,但是这些库在 IBM MQ V7 中已经很稳定(参阅“规划信息”下的内容)。

COBOL

在许多平台上,您可以用 COBOL 编写应用程序来与运行在 IBM z/OS 大型机系统和 IBMi 系统上的队列管理器进行交互。

最新客户端

此页面上链接的所有客户端都是最新的持续交付 (CD) 版本客户端。我们还提供了长期服务 (LTS) 版本客户端。

如果需要使用其他版本进行开发,从以下 Fix Central 链接中选择合适的客户端:

要了解有关 IBM MQ 版本类型的更多信息,参阅 IBM MQ Knowledge CenterIBM 支持中针对 LTS 和 CD 的 FAQ 页面

本文翻译自:IBM MQ Downloads for developers(2020-06-23)