消息中间件本质上就是一种很简单的数据结构——队列,但是一条队列肯定是当不成中间件的,你必须要考虑性能、容灾、可靠性等等因素。这也给我的写作提供了一些思路,我将从队列开始,给你演示一条队列是如何进化成一个靠谱的中间件的。消息中间件的实现有很多,有新贵Kafka、RocketMq,也有老牌劲旅RabbitMq和ActiveMq,不过我最后选择了Nsq来讲解,因为它极简、清爽,用起来舒服,讲起来也好理解,更重要的是,通过对Nsq的学习,我们很容易扩展到消息中间件的通用层面,对学习其他Mq,乃至优化和设计自己的Mq都有很大帮助。这一系列的文章,将有以下这些topics: