学习go消息队列 | 青训营

118 阅读2分钟

NSQ简介

NSQ是一个基于Go语言的分布式实时消息平台, 它具有分布式、去中心化的拓扑结构,支持无限水平扩展。无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。另外,NSQ非常容易配置和部署, 且支持众多的消息协议。支持多种客户端,协议简单,如果有兴趣可参照协议自已实现一个也可以。 NSQ的几个组件

nsqd:一个负责接收、排队、转发消息到客户端的守护进程 nsqlookupd:管理拓扑信息, 用于收集nsqd上报的topic和channel,并提供最终一致性的发现服务的守护进程 nsqadmin:一套Web用户界面,可实时查看集群的统计数据和执行相应的管理任务 utilities:基础功能、数据流处理工具,如nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq 相关网址

NSQ官网:NSQ官网

GitHub: Github

NSQ官方客户端:NSQ官方客户端

NSQ文档:NSQ文档

NSQ协议:NSQ协议

NSQ安装

NSQ的安装方式有好几种,可以通过二进制、源码、Docker、Brew等方式安装

二进制安装,可以到安装地址 上面下载对应平台的Release包,然后解压就行了。

如果是Mac电脑,直接用Brew安装

brew install nsq 如果是Docker的安装,就参照下上面那个网址吧,按照步骤操作就行了,我没有用的这个安装方式。

我是用的源码的安装方式,因为二进制的那个放在S3上面,下起来好慢,于是直接把Github的源代码下载来,这里也有一个好处就是可以看源码来跟踪学习。还方便些。

下载后的目录结构如下所示: