JMS、MQ 系列、MQ 队列、MDB

JMS, MQ-Series, MQ-Queue, MDB

我从学习 EJB 开始,然后依次阅读:Session Beans 和 MDB。当我想为 MDB 实现一些程序时,我决定 google 并下载一些开源软件。

然而在这方面,我得到了很多术语,现在我对它们是什么感到困惑:

1) MQ

2) MQ 系列

3) MQ 队列

4) JMS

5) MDB(消息驱动的 Bean)。

我尝试在网上搜索,但是我没有得到满意的答案,因此希望有人在这里帮助我。

1) MQ 一般来说-MQ用来指"message queue"或者提供消息队列服务的软件服务器-比如Apache ActiveMQ、IBM WebSphere MQ、Javasun JMS服务器、rabbitMQ等。提供消息服务的软件有称为 面向消息的中间件 (MOM)。

另外 - IBM Websphere MQ 的另一个名称,一种提供用于集成的中间件软件的产品(queues/topics/clustering/remote/local/temporary queues/APIs/GUI viewers/Command 行工具等)

2) MQ 系列

IBM WebSphere MQ 和其他中间件产品(如工作流软件)的旧名称。只是不用担心这个。

3) MQ 队列

在 IBM WebSphere MQ 中创建的消息队列或创建 (1) 中提到的任何此类软件的队列。消息队列可以被形象化为一个管道,一个应用程序在一端写入信息,另一个应用程序从另一端读取信息。

4) JMS

是消息传递标准的 API 规范 (JSR 914),允许基于 Java 企业版 (Java EE) 的应用程序组件创建、发送、接收和阅读消息。 Java 使用 JMS 库来抽象底层消息服务实现,例如 ActiveMQ、IBM WMQ 等。 JMS 规范由 MOM 供应商实施。例如,com.ibm.mq.allclient.jar 包含用于 JMS 的 IBM MQ 类。

5) MDB(消息驱动的 Bean)。 允许 Java EE 应用程序异步处理消息的企业 bean。通常,MDB 将配置为侦听目标(例如:消息队列),当消息出现在队列中时,容器将消息传递给 MDB(使用 JMS APIs/Interfaces)

JMS MDB 和 MQ 之间的关系可以概括为 MDB 侦听托管在 MQ 服务器上的 MQ 队列,并且 MDB 和 MQ 之间的通信 server/queue 是使用 JMS 实现完成的(大部分时间)