nsq

Nsq

nsq简介

NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。

NSQ 具有分布式去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。

nsq原理

NSQ 由 3 个守护进程组成:

nsqd 是接收、队列和传送消息到客户端的守护进程。

nsqlookupd 是管理的拓扑信息,并提供了最终一致发现服务的守护进程。

nsqadmin 是一个 Web UI 来实时监控集群(和执行各种管理任务)。

在 NSQ 数据流建模为一个消息流和消费者的树。一个话题(topic)是一个独特的数据流。一个 通道(channel) 是消费者订阅了某个 话题 的逻辑分组。

话题(topic)和通道(channel),NSQ 的核心基础,最能说明如何把 Go 语言的特点无缝地转化为系统设计。

Go 语言中的通道(channel)(为消除歧义以下简称为“go-chan”)是实现队列一种自然的方式,因此一个 NSQ 话题(topic)/通道(channel),其核心,只是一个缓冲的 go-chan Message指针。缓冲区的大小等于 –mem-queue-size 的配置参数。

nsq搭建

nsq 安装

nsq使用

  • 启动 nsqlookupd

  • 启动 nsqd –lookupd-tcp-address=127.0.0.1:4160

  • nsqadmin –lookupd-http-address=127.0.0.1:4161

  • nsq_to_file –topic=test –output-dir=/tmp –lookupd-http-address=127.0.0.1:4161 可以指定topic和channel

  • curl -d ‘hello world 1’ ‘http://127.0.0.1:4151/put?topic=test

  • 在浏览器中打开 http://127.0.0.1:4171/ 就能查看 nsqadmin 的 UI 界面和队列统计数据

<think>好的,我需要帮助用户找到NSQ的安装方法或指南。根据用户提供的引用内容,我需要整理出不同的安装方法,并确保符合用户的操作系统。首先,用户提到的引用中有几个方法,包括使用go get、二进制安装、源码编译等。 首先,我需要检查各个引用中的方法是否可行。引用1提到在CentOS 7下安装NSQ,但方法1遇到错误,转而使用方法2通过gpm安装。不过引用3提到在mac系统下使用brew install nsq,而引用4则是在Windows下使用Go 1.19编译。用户可能使用不同的操作系统,需要分别说明。 接下来,我需要将这些方法分类,按操作系统或安装方式组织。比如二进制安装适用于macOS和Linux,源码编译需要Go环境,包管理工具如brew或yum。还要注意不同方法可能遇到的常见问题,比如依赖项或权限问题,并给出解决方案。 另外,用户可能对安装后的启动步骤感兴趣,引用2提到启动多个nsqd实例,应该在安装指南后补充基本启动命令。还要验证各个步骤的正确性,比如确保Go版本符合要求,路径配置正确等。 最后,生成相关问题,帮助用户进一步了解NSQ的配置和使用。需要确保回答结构清晰,步骤详细,用户能逐步跟随操作。同时,引用来源要正确标注在相关步骤末尾。</think>### NSQ安装方法指南 #### 一、二进制安装(推荐) 1. **macOS系统** 使用Homebrew工具直接安装: ```bash brew install nsq ``` 安装后通过`nsqd`、`nsqlookupd`等命令启动服务[^3]。 2. **Linux系统** 下载预编译二进制包(以CentOS 7为例): ```bash wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-1.2.1.linux-amd64.go1.19.3.tar.gz tar -zxvf nsq-*.tar.gz cd nsq-*/bin ./nsqd --lookupd-tcp-address=127.0.0.1:4160 # 启动nsqd节点 ``` #### 二、源码编译安装(需Go环境) 1. **安装Go语言** 要求Go版本≥1.19(Windows/Linux/macOS通用): ```bash # 以Linux为例 wget https://go.dev/dl/go1.19.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin # 添加环境变量 ``` 2. **编译NSQ源码** ```bash git clone https://github.com/nsqio/nsq cd nsq make # 生成二进制文件到./bin目录 ``` #### 三、包管理器安装(特定系统) - **CentOS/RHEL** 通过`gpm`工具安装(需root权限): ```bash yum install gpm gpm install go get github.com/nsqio/nsq/... ``` > 注:若出现“内部包不允许引用”错误,建议改用二进制或源码方式[^1]。 #### 四、验证安装 启动基础服务集群: ```bash nsqlookupd & # 启动管理服务 nsqd --lookupd-tcp-address=127.0.0.1:4160 & # 启动节点 nsqadmin --lookupd-http-address=127.0.0.1:4161 & # 启动管理界面 ``` 访问`http://localhost:4171`查看NSQ Admin面板。 #### 五、常见问题 1. **依赖缺失** 确保安装`libtool`、`autoconf`等编译工具(Linux/macOS): ```bash yum groupinstall "Development Tools" # CentOS brew install autoconf libtool # macOS ``` 2. **多节点配置** 创建独立目录存放节点数据(如macOS): ```bash mkdir -p /usr/local/nsqd/{node1,node2,node3} nsqd --data-path=/usr/local/nsqd/node1 --tcp-port=4150 # 启动第一个节点[^2] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值