前言:
眼前你们对“消息队列如何使用”大概比较注重,各位老铁们都想要剖析一些“消息队列如何使用”的相关内容。那么小编在网上网罗了一些有关“消息队列如何使用””的相关资讯,希望姐妹们能喜欢,咱们一起来学习一下吧!简要说明
NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。
NSQ分为三个服务
nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。
nsqlookupd 是守护进程负责管理拓扑信息。
nsqadmin 是一套 WEB UI,用来汇集集群的实时统计,并执行不同的管理任务nsqadmin默认的访问地址是
NSQ下载
官网下载:
下面以 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’ ‘’
查看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
标签: #消息队列如何使用