通过简单的例子,讲故事的方式解释消息队列
我们在做架构设计的时候,我个人理解,有一点很重要,叫各司其职。
如何才算各司其职呢?首先,你得让他们各自有职责,才有职可依。
比如说,举个不恰当的例子,以前没有数据库的时候,我们要吧数据持久化,可能需要自己写文件,自己写查找算法。后面大家觉得自己存取数据太麻烦,而且不通用,于是就想办法专门做一个模块来存取数据。
这个,就是职责划分产生的必然结果。
故事
- 在很久很久以前,人们住得很近,所谓鸡犬之声相闻,邻居之间有个啥事需要帮忙,吼一声,大家都能听到,就会帮你做事。
- 再后来,村庄变城市,大家住的越来越远,家庭的独立性越来越强,相互之间再通过吼一声来已然不现实,所以,就有了电话。想让对方帮忙,足不出户,一个电话就能通知到。
- 但是,你想要对方帮忙,还得知道电话号码,如果换号码了也没有通知到你,那么你就无法找对方帮忙了。于是乎,就出了信使这个职业。你只要告诉信使,你需要人来做某某事,信使就会把你的任务通知到所有能做这个事的人。收到任务的人,就会去做,做完之后他就告诉信使已完成,信使再告诉你结果。
对应到计算机世界
- 在同一个进程,想调用别人,知道接口就行。对应的是村庄时代
- 再后来,单机性能不够,所以,就需要拆分到多个机器。比如,数据库就部署到单独的机器,别人通过远程调用来使用。对应的是电话时代
- 再后来,集群时代到来,于是消息队列就红红火火恍恍惚惚。对应信使时代
本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/