龙空技术网

NSQ队列的安装及简单使用

飞飞程序员 49

前言:

眼前你们对“消息队列如何使用”大概比较注重,各位老铁们都想要剖析一些“消息队列如何使用”的相关内容。那么小编在网上网罗了一些有关“消息队列如何使用””的相关资讯,希望姐妹们能喜欢,咱们一起来学习一下吧!

简要说明

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

标签: #消息队列如何使用