nsq 简介:nsq 是实时分布式消息处理平台,是基于go 语言开发的特点是
● 分布式 (Distributed) 去中心化拓扑
● 可伸缩 (Scalable) 横向扩展
● 操作友好 (Ops Friendly) 简单的配置&部署
● 可集成 (Integrated) 各种lib
主要模块
nsq主要有3个守护进程组成
● nsqd 负责接收, 保存( … 暂存?), 传送消息.
● nsqlookupd 管理拓扑信息, 维护所有nsqd的状态, 提供 最终一致发现服务
● nsqadmin 一个Web UI 用于实时监控集群, 执行各种管理任务
nsqd 负责接收,保存,传送消息,启动命令:./nsqd --lookupd-tcp-address=127.0.0.1:4160 & 第二步
nsqlookupd 管理拓扑信息,维护nsqd 的状态 命令:./nsqlookupd & 第一步
nsqadmin 基于web 实时监控集群 运行命令 ./nsqadmin --lookupd-http-address=0.0.0.0:4161 --http-address=10.99.203.47:8761&
nsqd 主要是 两种模式组成:nsqd (topic + channel)
如图所示:
使用流程:
建立一个小型的nsq 集群,完成消息发布,使用
linux 安装命令:
wget nsq-1.2.0.linux-amd64.go1.12.9.tar.gz
cd 到bin 目录
执行目录
进入bin目录
cd nsq-1.0.0-compat.linux-amd64.go1.8/bin
启动nsqlookup
./nsqlookupd &
启动nsqd
./nsqd --lookupd-tcp-address=127.0.0.1:4160 &
运行 nsqadmin 管理
./nsqadmin --lookupd-http-address=0.0.0.0:4161 --http-address=10.99.203.47:8761&
客户端写入消息
发送消息
curl -d ‘hello world 1’ ‘http://127.0.0.1:4151/pub?topic=test’
发送更多的消息
☐ curl -d ‘hello world 2’ ‘http://127.0.0.1:4151/pub?topic=test’
☐ curl -d ‘hello world 3’ ‘http://127.0.0.1:4151/pub?topic=test’
队列消息写入文件
./nsq_to_file --topic=test --output-dir=/tmp/log --lookupd-http-address=127.0.0.1:4161
访问nsqadmin
http://10.99.203.47:8761/