在MQ中其实队列的概念基本上和我们上学时的数据结构中的概念是一样的,这个队列其实就是一个容器,用来存放消息。其中队列可以分成如下所示:
本地队列:其中只有本地队列才是真正意义上的队列实体。其中本地队列可以分为:初始化队列(初始化队列用作消息的触发功能)、目标队列(目标队列是消息的目的地,可以长期存放消息)、死信队列(如果消息不能达到目的地也不能路由出去,则会放入到死信队列中)、应答队列(由于消息在发送后需要对方的回应,这种回应可以是系统自动产生的消息报告,也可以是对方应用生成的应答消息)、命令队列、传输队列(在消息的传输过程中要送往远方的将会放到传输队列中,在适当的时候将会发往远方,从本地系统的立场来看传输队列是用来暂存输出消息的)。
远程队列:其实远程队列和别名队列类似,也只是一个队列定义。其中远程队列在定义的时候通常是指向其他远程队列管理器中的本地队列。远程队列在定义的过程中包括目标队列管理器和目标队列名,而且这种队列的定义对于访问地的应用是透明的。这种技术不但使应用程序只需要对一个简单的队列名操作,而且可以在线通过修改远程队列定义,而动态的改变路由。
别名队列:别名队列是指向本地队列管理器中的队列
模型队列:模型队列其实它本身只是一个队列的定义,但是当打开模型队列的时候,队列管理器会以这个定义为模型,创建一个本地队列,被称为动态队列。