英文: Message queue
中文: 消息队列
介绍: 消息队列是在消息的==传输过程中保存消息的容器==,如名字所示,本质就是一个队列,关键是队列中的元素为“消息”。
消息队列首先肯定符合对列“先进先出”的特性,但也不完全符合,例如会根据不同消息的优先级对消息在队列中的顺序做调整,高优先级的消息会放置队列头优先处理。
消息队列也就相当于是一个缓冲区,一边可以不断将各种消息往消息队列中送,另一边可以慢慢的从消息队列取出相应的消息再慢慢进行处理,这样便存在两个特点:
- 可以保证所有需要处理的消息都可以得到处理,即使对消息处理的速度小于消息接收的速度。
- 对于需要处理的消息,申请者只需把消息往消息队列中丢就可以了,处理者也只需一个一个从消息队列中去取出相应的消息再一个一个处理便可以了,这样结构十分简单,特别是当有多个申请者时,处理者相当于提供了一个借口,只要需要我来处理的消息你只需往我这个接口中丢,然后等我的回应(回应便可指相应的回调函数)就可以了。
注:“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象等。