1. nsq是go语言实现的分布式消息处理平台,类似我们常用的kafka,rocket mq等,目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征
2. nsq官网地址 https://nsq.io/
3. nsq安装包地址 NSQ Docs 1.2.1 - Installing
4. nsq分为3种服务进程
nsqd: 负责接收消息,消息排队、重试、持久化,推送消息给客户端,可以有多个
nsqlookupd: 负责管理各个nsqd,存储nsqd的元数据和服务信息,客户端(我们的程序)就是通过查询 nsqlookupd来实现服务发现,可以有多个
nsqadmin: 方便我们查看、管理nsq的UI网页工具,汇总nsq的实时统计,一般1个就够了
1. 打开上面的nsq安装包地址,可以看到各个系统,各个版本的nsq安装包,当前最新版本是nsq-1.2.1,我是centos系统,所以下载 nsq-1.2.1.linux-amd64.go1.16.6.tar.gz,如下图
2. 下载到我们的电脑上,放在/soft目录下,这个目录专门存放我们的软件,如下图
3. 运行命令 tar -zxvf nsq-1.2.1.linux-amd64.go1.16.6.tar.gz 解压到当前目录,然后
cd到目录 nsq-1.2.1.linux-amd64.go1.16.6/bin,可以看到内容如下图
命令如下,192.168.136.129是本机IP,参数 --lookupd-tcp-address=192.168.136.129:4160 表示要连接的nsqlookupd的地址是192.168.136.129:4160
nohup ./nsqd --lookupd-tcp-address=192.168.136.129:4160 &
nsqd会默认监听4150端口(tcp使用),4151端口(http使用) ,可以使用lsof 命令看到这两个端口已经被nsqd监听
nohup ./nsqlookupd &
nsqlookupd会默认监听本地的4160端口(tcp使用),4161端口(http使用)。其中4160端口是给各个nsqd连接用的,也就解释了为什么步骤1中要连这个地址了。当然也可以通过指定参数-tcp-address=xxxx 和 -http-address=xxxx来监听其他端口
监听如下图
nohup ./nsqadmin --lookupd-http-address=192.168.136.129:4161 &
注意:nsqadmin必须明确指定参数lookupd-http-address,这样它才知道要通讯的nsqlookup地址,nsqadmin会默认监听本地的4171端口,我们在浏览器上访问的就是这个地址
我们查看下刚才启动的各个nsq进程,如下图
打开浏览器,地址输入http://192.168.136.129:4171/
其中192.168.136.129:4171就是刚才nsqadmin监听的地址,如下图
这个时候还没有topic(主题),也没有channel(监听通道)
点击页面的Nodes,可以查看所有的nsq节点,此时只有一个节点,就是刚才启动的nsq进程,如下图
点击页面的Lookup,可以查看所有的nsqlookup节点,此时也是只有一个节点,也就是刚才启动的,如下图
下一篇博客我们讲如何搭建nsq集群