简要说明
NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。
NSQ分为三个服务
nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。nsqlookupd 是守护进程负责管理拓扑信息。nsqadmin 是一套 WEB UI,用来汇集集群的实时统计,并执行不同的管理任务nsqadmin默认的访问地址是 http://127.0.0.1:4171/
NSQ下载
官网下载:https://nsq.io/deployment/installing.html
下面以 nsq-1.2.1.linux-amd64.go1.16.6.tar.gz 为例说明。
解压启动
#将包上传至服务器后解压
tar -zxvf nsq-1.2.1.linux-amd64.go1.16.6.tar.gz
#进入bin目录
cd /www/server/nsq-1.2.1.linux-amd64.go1.16.6/bin
#打开一个终端,启动nsqlookupd ./nsqlookupd
#打开另一个终端,启动nsqd
./nsqd --lookupd-tcp-address=127.0.0.1:4160
#打开另一个终端,启动nsqadmin
./nsqadmin --lookupd-http-address=127.0.0.1:4161
启动web界面
启动后打开127.0.0.1:4171可以访问对应web页面,创建topic
使用curl命令,发布一条消息
curl -d 'hello world' 'http://127.0.0.1:4151/pub?topic=test' 查看web页面可以查看到有一条记录
打印数据
nsq_to_file —topic=test —output-dir=/tmp —lookupd-http-address=127.0.0.1:4161
启动脚本
代码语言:javascript复制cd /usr/local/nsq/bin
NSQ_ADDRESS="127.0.0.1"
NSQLOOKUPD_LOG="/home/wwwlogs/nsq/tmplookup5.out"
NSQD_LOG="/home/wwwlogs/nsq/tmpnsqd5.out"
NSQADMIN_LOG="/home/wwwlogs/nsq/tmpnsqadmin5.out"
NSQFILE_LOG="/home/wwwlogs/nsq/tmpnsqfile5.out"
NSQFILE_DIR="/home/wwwlogs/nsq"
case "$1" in
start)
nohup ./nsqlookupd -broadcast-address=$NSQ_ADDRESS -http-address=$NSQ_ADDRESS":4161" -tcp-address=$NSQ_ADDRESS":4160" >> NSQLOOKUPD_LOG 2>&1 &
nohup ./nsqd --lookupd-tcp-address=$NSQ_ADDRESS":4160" -broadcast-address=$NSQ_ADDRESS -tcp-address=$NSQ_ADDRESS":4150" -http-address=$NSQ_ADDRESS":4151" >> $NSQD_LOG 2>&1 &
nohup ./nsqadmin -lookupd-http-address=$NSQ_ADDRESS":4161" -http-address="0.0.0.0:4171" >> $NSQADMIN_LOG 2>&1 &
;;
stop)
ps aux |grep 'nsqlookupd' |grep -v grep |awk '{print $2}'|xargs kill -9
ps aux |grep 'nsqd' |grep -v grep |awk '{print $2}'|xargs kill -9
ps aux |grep 'nsqadmin' |grep -v grep |awk '{print $2}'|xargs kill -9
ps aux |grep 'nsq_to_file' |grep -v grep |awk '{print $2}'|xargs kill -9
;;
*)
echo "Usage: /etc/init.d/nsq {start|stop}" >&2
exit 1
esac
将此脚本保存到 /etc/init.d/nsq 下,即可使用 /etc/init.d/nsq start|stop 命令启动和关闭。
监听端口
nsqlookupd 会监听两个端口:
http: 4161 客户端用它来发现和管理。tcp: 4160 nsqd 用它来广播
支持参数
代码语言:javascript复制-http-address=”0.0.0.0:4161”: : 监听 HTTP 客户端
-inactive-producer-timeout=5m0s: 从上次 ping 之后,生产者驻留在活跃列表中的时长
-tcp-address=”0.0.0.0:4160”: TCP 客户端监听的 :
-broadcast-address: 这个 lookupd 节点的外部地址, (默认是 OS 主机名)
-tombstone-lifetime=45s: 生产者保持 tombstoned 的时长
-verbose=false: 允许输出日志
-version=false: 打印版本信息
nsqd
nsqd —lookupd-tcp-address=127.0.0.1:4160
会监听两个端口:
http: 4151 tcp: 4150 nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。
代码语言:javascript复制nsqadmin
nsqadmin —lookupd-http-address=127.0.0.1:4161
监听一个端口 http:4171
这个nsq是安装lepus必备的一篇,大家可以看看下方和它关联的另外两篇文章。
安装Lepus监控
1、亲测安装开源数据库监控系统LEPUS的详细教程
2、给你推荐一款真的好用的开源数据库监控系统LEPUS