手记

golang开源软件nsq实现原理

nsq 是 go 语言体系下一款非常著名的消息队列。它本身非常容易上手,文档写的也很清晰,同时它的源码也并不复杂。这里不能不提一下,使用 go 的通道来编写消息队列的话是真的方便。我们从生产者接收消息后为了效率考虑肯定是要存到内存中,如果使用共享内存的话,比如Java中的容器,那么存入消息和取出消息都需要加锁;但是在 go 语言中,我们就不需要加锁,一个协程往通道里扔,另一个协程从通道里取即可,非常方便。

为了更深入的理解消息队列,我决定用一个系列文章来实现一个迷你版的nsq。本篇文章将会实现nsq最基本的功能:生产者发布消息和消费者订阅接收消息。后续的每一版都会在前一版的基础进行完善。

在看代码之前,我们先来回顾一下nsq的消息传递过程。


0人推荐
随时随地看视频
慕课网APP