工作需要通过NSQ接收数据,这里在Windows下测试一下,Linux上也差不多。
安装
这里下载 nsq-1.1.0。安装很简单,下载后直接解压,添加环境变量即可。
Path添加bin路径。
使用
1. 启动 nsqlookupd
nsqlookupd
监听TCP 4160端口用于 nsqd 服务,HTTP 4161 用于 nsqadmin 服务。服务会在下面启动。
2. 启动 nsqd
nsqd --lookupd-tcp-address=127.0.0.1:4160
指定nsqlookupd地址端口,因为是本地运行,所以指定127.0.0.1即可,端口是上面监听的4160。启动后会加载topic和channel元数据信息。并且每15秒向nsqlookupd发送一次心跳报告,nsqlookupd会进行回复和显示。
3. 启动 nsqadmin
nsqadmin --lookupd-http-address=127.0.0.1:4161
webUI:http://127.0.0.1:4171
4. 创建 topic
nsqd 向 nsqlookupd发送消息,如果 topic不存在会自动创建。Windows下使用 git bash 来发送。
curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'
nsqd 可以看到topic创建和注册成功。
nsqlookupd 注册topic信息。
5. 创建 channel
创建 topic后只是有了主题,但是没有消费通道 channel来消费 topic,发送消息只能保存在 topic内。这里另外开一个 shell通过 nsq_to_file创建 channel来消费topic。这里指定下输出路径 --output-dir=d:/data/,没有创建channel前发送的消息会保存到里面。
nsq_to_file --topic=test --output-dir=d:/temp/ --lookupd-http-address=127.0.0.1:4161
文件目录
文件内容
6. 发送消息
topic和channel都已经创建,再通过nsqd发送消息,数据会保存到指定目录。
curl -d 'hello world 2' 'http://127.0.0.1:4151/pub?topic=test'
curl -d 'hello world 3' 'http://127.0.0.1:4151/pub?topic=test'
7. 查看webUI
刷新会看到已经有topic,可以进入查看详细信息。