首次在linux上安装nsq遇到了好多坑,记录下来方便查看
一、安装nsq:全程安装官方文档来:http://nsq.io/deployment/installing.html
1、官方文档里有最新的nsq安装包地址,获取到地址后在linux上下载,如:wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-0.3.8.linux-amd64.go1.6.2.tar.gz
2、官方文档介绍要想安装nsq需要先安装:1.4以上版本的golong和gpm
移动到自定义的目录:mv go /usr/local(可选,主要是方便维护)
2.1.3、go环境变量配置
打开环境变量配置文件:sudo vim /etc/profile
然后在文件的最后追加以下配置:
export GOROOT=/usr/local/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
配置好环境变量后再让它马上生效
source /etc/profile
2.1.4、检查go是否安装成功:go version 若打印出了版本号则说明go安装成功
2.2、gpm安装:在linux使用yum直接安装即可:yum install gpm 安装中间可能会让确认,直接输入y即可
3、官方文档介绍编译nsq方法:
gpm install
go get github.com/nsqio/nsq/...
到此nsq已成功安装
二、测试:全程依然参考官方文档:http://nsq.io/overview/quick_start.html
1、 打开一个终端,启动nsqlookupd:nsqlookupd
2、再打开一个终端,启动nsq:nsqd –lookupd-tcp-address=127.0.0.1:4160
这种方式broadcast_address使用的是hostname,可能会出现一下错误: ERR 1 [test/nsq_to_file] (ALYBJ211-180:4150) error connecting to nsqd - dial tcp: lookup ALYBJ211-180: no such host
解决此问题需要在启动nsqlookupd和nsqd时设置tcp、http、broadcast的ip
启动nsqlookupd:
nsqlookupd -tcp-address=127.0.0.1:4160 -http-address=127.0.0.1:4161 -broadcast-address="127.0.0.1"
启动nsqd:
nsqd -broadcast-address="127.0.0.1" -http-address="127.0.0.1:4151" --lookupd-tcp-address=127.0.0.1:4160 -tcp-address="127.0.0.1:4150"
3、再打开一个终端,启动nsqadmin
nsqadmin –lookupd-http-address=127.0.0.1:4161
4、创建一个topic并且发布一条消息,由于nsq支持http协议发布消息,我们可以直接使用curl命令。
curl -d ‘hello world 1’ ‘http://127.0.0.1:4151/put?topic=test’
5、再开一个终端来处理消息数据流,将消息写入/tmp文件加下的日志文件,文件名默认由主题topic+主机+日期时间戳组成。
nsq_to_file –topic=test –output-dir=/tmp –lookupd-http-address=127.0.0.1:4161
output-dir是自定义的nsq log的存放文件夹地址,
6、我们再发布两条消息,看看日志文件中的变化。
curl -d ‘hello world 2’ ‘http://127.0.0.1:4151/put?topic=test’
curl -d ‘hello world 3’ ‘http://127.0.0.1:4151/put?topic=test’
cd /tmp 进入到日志文件夹下打开日志文件查看,会发现消息写进到了里面
7、浏览器查看结果:
此处为自己linux机器的ip地址