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

IBM Developer 博客

通过 IBM Developer 关注最新动态并获取信息

我们已经为目前最小的平台创建了 IBM MQ 的开发者版本。


IBM MQ 团队时常会被问起:MQ 能否在大型企业系统(例如大型机)之外的环境中运行?答案总是很响亮的“能!”IBM MQ 支持广泛的平台,但是为了使开发者工作更轻松,我们提供了面向 Windows 和 Linux 的开发者构建、Mac 客户端、MQ on Cloud 托管服务以及 IBM MQ 容器镜像。(您可以在“IBM MQ 入门”页面上了解有关这些开发者平台的详细信息。)

现在,我们已经为目前最小的平台创建了 IBM MQ 的开发者版本。下面就隆重介绍 IBM MQ Developer Edition for Raspberry Pi OS!

Raspberry Pi 是一种微型计算机,只有信用卡大小,其性能足以运行 MQ。它们通常用作 DIY 计算项目的一部分和教育工具。例如,我们的 MQ 开发者体验团队使用了两个 12 美元的 Raspberry Pi Zero 运行一个图像传输演示,在几次会议上向开发者展示系统的灾备能力:

Raspberry Pi Zero 的照片

上图显示了图像传输演示的早期原型。在这里先拍摄照片,然后通过其中一个 Raspberry Pi 上的队列管理器发送照片。另一个备用,以防发生故障(我们注入的故障)导致第一个 Pi 瘫痪。另一个 Pi 随后就会接收这些消息,证明即使服务器出现故障,我们仍然可以获取数据!

我们为 MQ V9.2 提供了 IBM MQ Developer Edition for Raspberry Pi OS。每次发布 MQ 后,我们提供的版本也将随之更新。

为什么要在 Pi 上使用 IBM MQ?

借助 MQ,多个应用程序的连接过程可变得更简单、更安全且扩展性更强。它通过易于管理的控制台或命令行界面 MQSC 来控制。

如果您不熟悉消息传递,可查看这篇简要介绍。如果您想要获得相应的资格来证明自己精通消息传递技术,可参照此 IBM MQ 学习路径

我该怎么使用?

事实证明,方法有很多!用来为全球最大公司提供支持的大多数软件功能,也可以用在您的家用 Pi 上面。这包括多实例队列管理器和队列管理器集群之类的功能。任何人只要有 Raspberry Pi 3 及更高版本(基于 ARM7 架构),便可以充分利用功能完整的 TLS 身份验证。

让我们开始运行起来!

首先,从此处下载构建。要安装此构建,需按照这篇 MQ 连接教程中的步骤进行操作 —— 这篇教程面向 Ubuntu 用户,但这些步骤在 Raspberry Pi OS 上也有效,因为它们都是基于 Debian 的系统。

在安装了 MQ 并配置了环境之后,输入 dspmqver 命令,即会向您显示这是面向 Raspbian 上运行的 ARM 平台的 32 位开发者构建。

dspmqver 命令的输出

如本教程中所述,别忘了设置环境,创建和配置队列管理器以及给应用程序授予访问权,否则您将无法存储和获取消息!

激活 MQ 控制台

一旦完成,即可激活 MQ 控制台,这是一个用于创建和编辑 MQ 对象(例如队列)的强大工具。您还可以查看所控制的每个队列上的消息等等。同时还可以通过这种方式在管理方面对 MQ 软件进行更改。我们现在就执行这一操作。

对于 Pi 构建,我们需要为控制台用户配置本地 OS 身份验证。如果您习惯在其他平台上使用 MQ 控制台,这些步骤会有所不同,但必须执行。

首先,我们创建一个名为“mqadmin”的用户。

sudo adduser mqadmin

切记要设置一个能记住的密码,因为一旦启用控制台,就需要使用该密码登录控制台。

可以将以下代码作为一个代码块进行粘贴,以获得所需的结果。下面,我们将新用户添加到名为“mqm”的组(您在 Ubuntu 教程的安装过程中创建了这个组)。您应该看到“mqadmin”已添加到“mqm”组。

接下来,我们将从 Web 样本目录复制 local_os_registry.xml 文件,然后进行编辑以激活控制台,并采用本地 OS 身份验证来确保安全性。这将复制文件并列出目录的内容。在 /var/mqm/web/installations/Installation1/servers/mqweb 目录中,有一个名为 mqwebuser.xml 的文件。我们将其重命名为 mqwebuser.xml.old,然后将 local_os_registry.xml 文件重命名为新的 mqwebuser.xml 文件。

sudo adduser mqadmin mqm
groups mqadmin

cd /opt/mqm/web/mq/samp/configuration
cp local_os_registry.xml /var/mqm/web/installations/Installation1/servers/mqweb
cd /var/mqm/web/installations/Installation1/servers/mqweb
ls

mv mqwebuser.xml mqwebuser.xml.old
mv local_os_registry.xml mqwebuser.xml

现在编辑 mqwebuser.xml 文件。可以使用 nano、vi 或其他任何文本编辑器。

sudo nano mqwebuser.xml

取消注释包含 httpsPorthttpHost 变量的行。取消注释 httpsPort 变量,这样便可以在端口 9443 上访问控制台。取消注释 httpHost 变量,这样便可以从 localhost 以外的位置进行连接(没错,可以通过手机使用 MQ 控制台!)

经过上面的编辑后,文件现在应该如下所示。在下面的 nano 编辑器中,您可以看到已经取消注释的行:

编辑器中 mqwebuser.xml 文件的截屏

最后,我们来启动托管控制台的 MQ Web 服务器。完成此操作后便一切就绪。使用以下命令运行服务器:

strmqweb

就是这样!您的控制台应该可以正常工作。要访问 MQ 控制台,可在互联网浏览器中转至

[network-ip-address-of-your-Raspberry-Pi]:9443/ibmmq/console

您可能会收到警告,但可以继续,因为它是针对将自签名证书用作本地身份验证的一部分发出的。进入登录页面后,使用“mqadmin”用户名和您为管理员帐户设置的密码登录。

登录后,即会显示有用的信息,帮助您充分利用 MQ、查看和创建队列,以及管理消息和权限。

IBM MQ 控制台欢迎屏幕的截屏

查看队列管理器

单击 Manage 菜单项可查看和编辑安装的 MQ。选择队列管理器会将您带入以下页面,您可以在该页面中查看队列管理器的队列、主题、订阅和通道。通过选择队列,您可以查看有关该队列的更多信息、存储的消息以及编辑其属性!

IBM MQ 队列管理器屏幕的截屏

关于 IBM MQ Developer Edition for Raspberry Pi OS 的重要说明

如果您不熟悉 MQ,应该注意一下事项。首先,这是软件的开发者版本,因此绝对不适合在生产中使用。另外,这是一项实验性产品,因此它是按原样提供的,没有正式的支持(但是,GitHub 代码库可用于报告问题)。最后,某些 MQ 功能可能不可用。

如果您是 MQ 专家(或者喜欢关注细节),则可以在下载的文件夹 /READMES/RPi_README.txt 中找到有关 Pi 的更具体限制。如果已经安装了 MQ,还可以在以下位置找到此文件:/opt/mqm/RPi_README.txt

后续行动

现在,您已经准备好了编写一些 MQ 应用程序。遵循本教程开始创建简单的 Java 应用程序。如果您需要某种特定语言的样本代码,可随时使用 Github 代码库中的样本

如果您遇到任何问题,可在 GitHub 代码库上提出问题,网址为:https://github.com/ibm-messaging/mq-raspberry-pi-developers。

非常期待看到您使用 MQ 创造的作品。使用愉快!

本文翻译自:IBM MQ on Raspberry Pi – our tastiest developer edition yet!(2020-09-16)