NSQ:golang-NSQ源码阅读 1-NSQ基本信息 | KaiQ.Gu|KerwinKoo Blog
关于本文本文建立在通过解读NSQ源码来提升golang的编写能力。
对于阅读某个项目的源码,本人通常按以下流程开展:
充分理解项目的使用场景和功能;对比其在同类项目中的优缺点;大体构思实现该项目需要什么模块;阅读源码。当然过程不是一成不变的,对项目的理解起初往往是从外界获取,在阅读源码的过程中会有一些自己的理解融汇进去;同时源码也不是一遍就可以看明白的,这个过程需要反复折回。
在本文中,分析对象是以golang为主编程语言而开发的Message Queue:NSQ,通过上面提到的过程来进行剖析。网上已有不少NSQ的说明及代码解释文档,我会对其进行参考,也会将参考源地址做好引用。
what’s MQ关于MQ的解释google就可以找出很多,根据使用场景和经历不同,对MQ的理解不同。我之前项目中使用MQ场景比较简单,就是接收日志,并且没有用到多节点拓扑功能。简单理解一下,应该是有一个http的writer的端,一个内部的reader端。客户端将日志上传到writer之后无需等待服务器处理,直接收到一个成功反馈,服务端在空闲时读取reader端,将队列中的日志进行处理的一种生产者-消...阅读全文
对于阅读某个项目的源码,本人通常按以下流程开展:
充分理解项目的使用场景和功能;对比其在同类项目中的优缺点;大体构思实现该项目需要什么模块;阅读源码。当然过程不是一成不变的,对项目的理解起初往往是从外界获取,在阅读源码的过程中会有一些自己的理解融汇进去;同时源码也不是一遍就可以看明白的,这个过程需要反复折回。
在本文中,分析对象是以golang为主编程语言而开发的Message Queue:NSQ,通过上面提到的过程来进行剖析。网上已有不少NSQ的说明及代码解释文档,我会对其进行参考,也会将参考源地址做好引用。
what’s MQ关于MQ的解释google就可以找出很多,根据使用场景和经历不同,对MQ的理解不同。我之前项目中使用MQ场景比较简单,就是接收日志,并且没有用到多节点拓扑功能。简单理解一下,应该是有一个http的writer的端,一个内部的reader端。客户端将日志上传到writer之后无需等待服务器处理,直接收到一个成功反馈,服务端在空闲时读取reader端,将队列中的日志进行处理的一种生产者-消...阅读全文