消息队列本质上是一个FIFO(First In First Out)队列。
一个主要用途是作为缓冲区使用。比如,web程序中需要发送email,而发送email比较耗时,为了提高web程序的响应时间,可以把发送email的任务交由后台其它程序来做。这时可以添加一条消息到一个消息队列,后台程序则从消息队列中取出消息执行发送任务。
另一种情况,是对于多并发的情况,资源访问需要避免竞争。借助消息队列,可以把并行的请求变成串行的。这样,就可以专注于事务逻辑本身,而把资源的共享访问问题交给消息队列来解决。
很显然,消息队列有两个重要需求:速度快和高并发。
另一个基于HTTP协议的消息队列实现是Beanstalk。