【图文教程】消息队列介绍

消息队列

1. 消息队列介绍

  • 消息队列扫盲
维基百科上的描述:在计算机科学中,消息队列(Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。 这个描述很生硬,对于没有接触过消息队列的你来说可能有点不好理解。

其实消息队列在上世纪八九十年代就有了,只不过它最早并不是用在目前我们所熟悉的互联网集群架构中。最近十几年,互联网发展太快,用户群体越来越大,早期的简单架构早就不能满足需求。所以聪明的架构师们,想尽各种办法解决一切瓶颈,其中消息队列就是一个典型代表。它目前被广泛使用在异步通信领域里。

什么叫异步?举个例子,用户在网站注册一个账号,需要通过邮件确认。正确的步骤是:1)用户填写信息(包括邮箱地址);2)服务器接收用户信息,写到数据库;3)服务器发送确认邮件给用户;4)网站提示用户注册完成。如果这4个步骤逐次完成,则整个流程耗费时间最大的是第三步,有可能需要不到1秒钟,也可能需要1分钟。所以,这样的设计最终会导致个别用户的不耐烦而放弃注册。

如果是异步的思路,那么会把第3步单独摘出来,也就是说不管用户有没有收到邮件,网站都会直接告诉用户注册成功了。这个设计没毛病,但是如何实现异步?这就用到了“消息队列”中间件。还接着说上面的小例子,在第二步的时候,服务器(其实是某个进程)除了将用户信息写入到数据库之外,它还会把用户的邮箱地址写入到消息队列里,而发送邮件的服务会到消息队列里取这个邮箱地址,然后再发邮件给那个邮箱地址。在这个过程中,写消息队列的服务(某个进程)和读消息队列的服务(发邮件的那个服务)没有直接关系,它们只需要专心写和读消息队列即可。

以上小例子&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值