我正在尝试使用WebSphere MQ队列在应用程序之间发送消息,以及使用MQTT协议使用WebSphere MQ主题的NodeJS应用程序。
我知道我们可以创建一个别名队列:
- 指向一个主题(在这种情况下,应用程序通过别名队列收听新出版物),
- 指向另一个队列。
现在,我想要相反的过程:
如何创建一个指向队列的别名主题?在这种情况下,Nodejs Applicaton将能够从其他应用程序中通过别名主题收听传入的消息,该应用程序在原始队列上推动消息。
配置:
- WebSphere v7.5
- 节点V5.5.0
- 协议MQTT V3
最后,我找到了答案。
要解决它,我必须创建一个订阅,指定主题源和队列目标。为此,在IBM WebSphere MQ Explorer中:
- 进入导航器 -> IBM WebSpheremq->队列管理器 ->选择您的队列 ->订阅 -> new-> subscription
- 输入您的订阅名称 ->单击" Next"
- 输入/选择默认属性" system.default.sub"
- 输入主题的名称(您可以在右侧的按钮中的存在中选择它)
- 输入现有队列目标的名称
- 单击"终止"
就是这样!有最小的先决条件可以做到这一点,但是您可以指定其他选项。您可以通过此链接在文档上查看订阅的属性:https://www.ibm.com/support/knowledgecenter/ssfksj_7.5.0.5.0/com.ibm.mmq.explorer.doc/e_properties_subs.htm
注意:指令的单词可能会略有不同,因为我将WebSphere MQ软件的局限性从法语转换为英语。
(编辑)说明:
我的nodejs应用程序必须与其他应用程序交流两种方式(发布/接收)。正如@shashi在评论中所说,MQTT协议基本上仅与发布/订阅模型一起使用。但是,它能够通过我之前解释的IBM WebSphere MQ软件的"订阅"功能与队列进行通信。
。的确,根据我了解的,"订阅"功能名称是一种"桥" 链接/转换 a主题(用于nodejs)到目标队列(用于应用程序)。
这与IBM WebSphere MQ中的一个主题可能是一个相反的情况:
"别名名称也可以解析为主题。如果应用程序当前在队列上输入消息,则可以通过使队列名称成为主题的别名来发布到主题。没有更改应用程序代码是必要的。"(来自文档)