Nsq 服务测试环境搭建

目录

  1. 安装
  2. 启动服务
  3. 一键式 Docker 服务

参考文档: http://nsq.io/overview/quick_start.html

安装

官网 下载安装包, 对应好自己的操作系统.

我打算开启一个 Vagrant 来进行 nsq 的测试, 所以下载 Linux 版本: https://s3.amazonaws.com/bitly-downloads/nsq/nsq-1.0.0-compat.linux-amd64.go1.8.tar.gz

如果下载速度蜗牛的话建议开启迅雷.

下载好之后, 拷贝到对应目录, 解压缩.

tar zxvf nsq-1.0.0-compat.linux-amd64.go1.8.tar.gz

将解压缩的文件放在 PATH 环境变量下即可.

启动服务

  1. 启动集群管理节点

nsqlookupd

默认监听 4160/tcp 进行集群自动发现, 4161/http 进行性能管理 api 接口

  1. 启动 nsq 消息队列

nsqd --lookupd-tcp-address=127.0.0.1:4160

其中, --lookupd-tcp-address 是与上面的集群管理节点进行连接的地址, 以 tcp 协议心跳状态

默认监听 4150/tcp, 4151/http, 4152/https 端口

与其通信的 api 参考: http://nsq.io/components/nsqd.html

  1. 启动后台管理服务(一个 http 服务, 方便查询消息队列状态)

nsqadmin --lookupd-http-address=127.0.0.1:4161

同样, --lookupd-http-address 也算与上面集群管理节点进行连接的地址, 调用 http 接口

默认监听 4171/http 端口, 可以访问该端口得到一个后台页面, 展示 nsq 集群当前的信息.

测试服务

  1. 生产一个消息(同时没有对应的话题则创建)

curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'

此时是与 nsqd 进行交互, 参考 http://nsq.io/components/nsqd.html

  1. 添加消费者(事件监听)

nsq_to_file --topic=test --output-dir=/tmp --lookupd-http-address=127.0.0.1:4161

这个命令是以文件形式存储获取到的消息, 具体参考: http://nsq.io/components/utilities.html

使用 Docker 一键式部署

首先要有 Docker 环境, 具体安装方法参考: https://docs.docker.com/install/ 部分, 选择自己对应的操作系统.

Docker 部署的文档参考: http://nsq.io/deployment/docker.html

基于 Docker Composer 比较简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3'
services:
nsqlookupd:
image: nsqio/nsq
command: /nsqlookupd
ports:
- "4160"
- "4161"
nsqd:
image: nsqio/nsq
command: /nsqd --lookupd-tcp-address=nsqlookupd:4160
depends_on:
- nsqlookupd
ports:
- "4150"
- "4151"
nsqadmin:
image: nsqio/nsq
command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
depends_on:
- nsqlookupd
ports:
- "4171"

之后使用 docker-compose up -d 即可将其跑起来.

  • docker-compose ps 查看进程
  • docker-compose logs 查看日志
Donate - Support to make this site better.
捐助 - 支持我让我做得更好.