NSQ队列的安装及简单使用

go语言 2022年10月18日 1.09K

简要说明

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

启动脚本

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 用它来广播

支持参数

-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 是一个守护进程,负责接收,排队,投递消息给客户端。

nsqadmin

nsqadmin —lookupd-http-address=127.0.0.1:4161

监听一个端口
http:4171


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

PHP学习网:站内收集的部分资源来源于网络,若侵犯了您的合法权益,请联系我们删除!
分享到:
赞(0)

文章评论

您需要之后才可以评论
0点赞 0评论 收藏 QQ分享 微博分享

PHP学习网

PHP学习网