MQ的基本概念
时间:2023-01-15 18:49:03 下载该word文档
>>>>MQ的基本概念-ZT1队列管理器队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。2消息Messagingmeansthatprogramscommunicatewitheachotherbysendingdatainmessagesandnotbycallingeachotherdirectly.在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用向其它应用发出的处理请求等都可以作为消息。消息有两部分组成:消息描述符(MessageDiscription或MessageHeader,描述消息的特征,如:消息的优先级、生命周期、消息Id等;消息描述符(MQMD)也称消息头,应用程序发送信息时,指定要发送的一个应用数据及控制信息MQSeries将控制信息组织成一个MQMD结构加到应用数据上,从而构成一个消息。MQMD包括如下结构成员:消息类型(MsgType)(1)报文消息(Datagram)不要求响应(2)请求消息(Request)要求响应的消息(3)响应消息(Reply)请求消息的响应消息(4)报告消息(Report)描述时间如发生错误的消息实效时间(Expiry)由应用程序指定,消息在传输过程中、保存在队列中或处理时由队列管理器或应用程序逐步递减。到零时,由队列管理器负责删除。优先级(Priority)应用程序指定持续性(Persistence)在队列管理器故障时不会丢失,由消息日至恢复。消息标识(MsgId)由应用程序或队列管理器生成。相关标识(CorrelId)用于把一个消息和另一个消息联系起来的标识,由应用程序或队列管理器生成。应用标识数据(ApplIdentityData)由应用程序将消息放入队列指定。消息的最大长度为100兆。消息体(MessageBody,即用户数据部分。在MQ中,消息分为两种类型,非永久性(non-persistent消息和永久性(persistent消息,非永久性消息是存储在内存中的,它是为了提高性能而杓频模毕低车舻缁騇Q队列管理器重新启动时,将不可恢复。当用户对消息的可靠性要求不高,而侧重系统的性能表现时,可以采用该种类型的消息,如:当发布股票信息时,由于股票信息是不断更新的,我们可能每若干秒就会发布一次,新的消息会不断覆盖旧的消息。永久性消息是存储在硬盘上,并且纪录数据日志的,它具有高可靠性,在网络和系统发生故障等情况下都能确保消息不丢、不重。此外,在MQ中,还有逻辑消息和物理消息的概念。利用逻辑消息和物理消息,我们可以将大消息进行分段处理,也可以将若干个本身完整的消息在应用逻辑上归为一组进行处理。
>>>>3队列队列是消息的安全存放地,队列存储消息直到它被应用程序处理。消息队列以下述方式工作:a程序A形成对消息队列系统的调用,此调用告知消息队列系统,消息准备好了投向程序B;b消息队列系统发送此消息到程序B驻留处的系统,并将它放到程序B的队列中;c适当时间后,程序B从它的队列中读此消息,并处理此信息。由于采用了先进的程序设计思想以及内部工作机制,MQ能够在各种网络条件下保证消息的可靠传递,可以克服网络线路质量差或不稳定的现状,在传输过程中,如果通信线路出现故障或远端的主机发生故障,本地的应用程序都不会受到影响,可以继续发送数据,而无需等待网络故障恢复或远端主机正常后再重新运行。在MQ中,队列分为很多种类型,其中包括:本地队列、远程队列、模板队列、动态队列、别名队列等。本地队列又分为普通本地队列和传输队列,普通本地队列是应用程序通过API对其进行读写操作的队列;传输队列可以理解为存储-转发队列,比如:我们将某个消息交给MQ系统发送到远程主机,而此时网络发生故障,MQ将把消息放在传输队列中暂存,当网络恢复时,再发往远端目的地。远程队列是目的队列在本地的定义,它类似一个地址指针,指向远程主机上的某个目的队列,它仅仅是个定义,不真正占用磁盘存储空间。模板队列和动态队列是MQ的一个特色,它的一个典型用途是用作系统的可扩展性考虑。我们可以创建一个模板队列,当今后需要新增队列时,每打开一个模板队列,MQ便会自动生成一个动态队列,我们还可以指定该动态队列为临时队列或者是永久队列,若为临时队列我们可以在关闭它的同时将它删除,相反,若为永久队列,我们可以将它永久保留,为我所用。4通道通道是MQ系统中队列管理器之间传递消息的管道,它是建立在物理的网络连接之上的一个逻辑概念,也是MQ产品的精华。channelsareobjectsthatprovidesacommunicationpathfromonequeuemanagertoanother.在MQ中,主要有三大类通道类型,即消息通道,MQI通道和Cluster通道。消息通道是用于在MQ的服务器和服务器之间传输消息的,需要强调指出的是,该通道是单向的,它又有发送(sender,