NSQ

项目数据对接方使用了一个消息队列 https://nsq.io/,我们相应的也需要能够加入该队列中。

被一个查到的资料误导或者说是我理解错了,以为nsq一定要在docker中运行,导致去研究了一下docker的安装和使用。

然后现在发现只需要下载nsq相应的的exe文件,其实就能开始使用了。

安装文件地址:https://nsq.io/deployment/installing.html

参考资料:https://blog.youkuaiyun.com/u011692924/article/details/80858704

官方教程:https://nsq.io/overview/quick_start.html

 

nsq有三个组件以及辅助的几个工具构成。 
nsqd 
nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。 
它可以独立运行,不过通常它是由 nsqlookupd 实例所在集群配置的(它在这能声明 topics 和 channels,以便大家能找到)。

  • 服务启动后有两个端口:一个给客户端,另一个是 HTTP API。还能够开启HTTPS。
  • 同一台服务器启动多个nsqd,要注意端口和数据路径必须不同,包括:–lookupd-tcp-address、 -tcp-address、–data-path。
  • 删除topic、channel需要http api调用。

nsqlookupd 
nsqlookupd 是守护进程,负责管理拓扑信息并提供最终一致性的发现服务。客户端通过查询 nsqlookupd 来发现指定话题(topic)的生产者,并且 nsqd 节点广播话题(topic)和通道(channel)信息。

  • 该服务运行后有两个端口:TCP 接口,nsqd 用它来广播;HTTP 接口,客户端用它来发现和管理。
  • 在生产环境中,为了高可用,最好部署三个nsqlookupd服务。

nsqadmin 
nsqadmin 是一套 WEB UI,用来汇集集群的实时统计,并执行不同的管理任务。 
运行后,能够通过4171端口查看并管理topic和channel。

  • 通常只需要运行一个。

utilities 
常见基础功能、数据流处理工具,如nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq

 

nsqllookupd.exe:服务端

nsqd.exe:服务端

nsqadmin.exe:服务端管理工具(Web)

nsq_to_file.exe:消息订阅方

git bash:消息发起方

比较不明白的是为什么是用git bash来发布消息呢

我的项目是c#,需要用c#订阅消息。

找到相应的.net客户端,下载代码研究一下。

 

NsqSharp下载下来打开sln,没找到合适的例子,发现git主页说明中有简单的发布和消费代码,分别创建项目并测试,可以。

<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、付费专栏及课程。

余额充值