NSQ安装及简单使用
作者:互联网
简述
nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。简单的说,真正干活的就是这个服务,它主要负责message的收发,队列的维护。nsqd会默认监听一个tcp端口(4150)和一个http端口(4151)以及一个可选的https端口;
对订阅了同一个topic,同一个channel的消费者使用负载均衡策略(不是轮询) 只要channel存在,即使没有该channel的消费者,也会将生产者的message缓存到队列中(注意消息的过期处理) 保证队列中的message至少会被消费一次,即使nsqd退出,也会将队列中的消息暂存磁盘上(结束进程等意外情况除外) 限定内存占用,能够配置nsqd中每个channel队列在内存中缓存的message数量,一旦超出,message将被缓存到磁盘中 topic,channel一旦建立,将会一直存在,要及时在管理台或者用代码清除无效的topic和channel,避免资源的浪费
nsqlookupd 是守护进程负责管理拓扑信息。客户端通过查询 nsqlookupd 来发现指定话题(topic)的生产者,并且 nsqd 节点广播话题(topic)和通道(channel)信息。简单的说nsqlookupd就是中心管理服务,它使用tcp(默认端口4160)管理nsqd服务,使用http(默认端口4161)管理nsqadmin服务。同时为客户端提供查询功能;
唯一性,在一个Nsq服务中只有一个nsqlookupd服务。当然也可以在集群中部署多个nsqlookupd,但它们之间是没有关联的 去中心化,即使nsqlookupd崩溃,也会不影响正在运行的nsqd服务 充当nsqd和naqadmin信息交互的中间件 提供一个http查询服务,给客户端定时更新nsqd的地址目录nsqadmin 是一套 WEB UI,用来汇集集群的实时统计,并执行不同的管理任务nsqadmin默认的访问地址是 http://127.0.0.1:4171/
提供一个对topic和channel统一管理的操作界面以及各种实时监控数据的展示,界面设计的很简洁,操作也很简单 展示所有message的数量,恩…装X利器 能够在后台创建topic和channel,这个应该不常用到 nsqadmin的所有功能都必须依赖于nsqlookupd,nsqadmin只是向nsqlookupd传递用户操作并展示来自nsqlookupd的数据
一、NSQ下载
打开 https://nsq.io/deployment/installing.html 下载对应的nsq版本
Linux选择安装 nsq-1.2.1.linux-amd64.go1.16.6.tar.gz,如下以Linux安装为例
二、NSQ解压、启动
# 将包上传至服务器后解压 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
启动后打开127.0.0.1:4171可以访问对应web页面,创建topic
使用curl命令,发布一条消息
curl -d 'hello world' 'http://127.0.0.1:4151/pub?topic=test'
查看web页面可以查看到有一条记录
附:
NSQ启动脚本示例:
#!/bin/sh cd /www/server/nsq/bin 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 NSQ_ADDRESS="127.0.0.1" NSQLOOKUPD_LOG="../out/tmplookup5.out" NSQD_LOG="../out/tmpnsqd5.out" NSQADMIN_LOG="../out/tmpnsqadmin5.out" NSQFILE_LOG="../out/tmpnsqfile5.out" NSQFILE_DIR="../out/" nohup ./nsqlookupd -broadcast-address=$NSQ_ADDRESS -http-address=$NSQ_ADDRESS":5501" -tcp-address=$NSQ_ADDRESS":5511" >> NSQLOOKUPD_LOG 2>&1 & nohup ./nsqd --lookupd-tcp-address=$NSQ_ADDRESS":5511" -broadcast-address=$NSQ_ADDRESS -tcp-address=$NSQ_ADDRESS":5561" -http-address=$NSQ_ADDRESS":5551" >> $NSQD_LOG 2>&1 & nohup ./nsqadmin -lookupd-http-address=$NSQ_ADDRESS":5501" -http-address="0.0.0.0:5500" >> $NSQADMIN_LOG 2>&1 & nohup ./nsq_to_file --topic=test --output-dir=$NSQFILE_DIR --lookupd-http-address=$NSQ_ADDRESS":5501" >> $NSQFILE_LOG 2>&1 &
1、停止后再重新启动
2、配置log日志文件地址和运行IP地址
3、分别启动 nsqlookupd、nsqd、nsqadmin(web管理功能)、nsq_to_file(队列消息写入文件),并修改对应的端口
标签:grep,简单,http,nsqd,nsqlookupd,address,NSQ,安装 来源: https://www.cnblogs.com/sanplit/p/16356838.html