zl程序教程

您现在的位置是:首页 >  Java

当前栏目

NSQ队列的安装及简单使用

2023-02-18 16:32:27 时间

简要说明

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

这个nsq是安装lepus必备的一篇,大家可以看看下方和它关联的另外两篇文章。

安装Lepus监控

1、亲测安装开源数据库监控系统LEPUS的详细教程

2、给你推荐一款真的好用的开源数据库监控系统LEPUS