一、MQ核心思想
MQ技术的核心是一个非常简单的思想:程序A把一个消息发送到与程序B相连的队列中,与B通信。B从队列中获取消息并执行,却并不用关心A或B的具体信息。两个程序可以是在同一个处理器中,也可以不同。
二、MQ具体实现原理
在OS操作系统上的应用程序通过-MQPUT在一端发送消息,另一端通过-MQGET获取;还可通过-MQOPEN,MQLOSE、MQCONN,MODISC等API进行消息调用,其中open用于打开一个消息队列,用完之后执行lose关闭消息队列;conn用于建立应用程序与队列管理器的连接,disc用于断开连接;MQINQ、MQSET用于查询和设置某个对象属性。实现上也是中间件的统一风格,对应用程序提供接口调用即可。
三、MQ适用平台
MQ支持的大量操作系统平台,例如DOS、Windows、UNIX等等。
四、MQ特性
1、异步性
异步特性的体现就在于使用MQ进行程序处理时间的独立性,例如程序A发送一条消息给程序B,A无需等待B响应,还可继续给B发送消息。程序B会在一个合适的时刻从消息队列里查看A发来的请求,做出应答回复给A。A从自己的消息队列里获取应答即可。多线程独立操作,更好的在分布式系统中进行消息处理。
2、并行性
一个程序可向不同的服务器发送多条请求,通过队列,这些请求可由服务器或者程序B并行处理,不必按顺序进行,提高消息处理的效率。
3、可靠的消息传递
MQ可为应用程序提供可靠的消息传递,即使在系统故障的情况下也不会丢失数据,不会出现同享的消息重复传递。
4、加快应用程序的开发
使用跨平台的MQ,为应用程序屏蔽了底层通信细节,大大提高了程序开发速度;并且通过使用队列作为程序与程序之间数据传输的接口,很容易实现新旧程序的集成操作。