社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
NSQ是一个基于Go语言的开源的分布式实时消息平台,他的代码托管在GitHub上。
NSQ可用于大规模系统的实时消息服务,它的设计目标是为在分布式环境下提供一个强大的去除中心化的分布式服务架构,可以每天处理数以亿计的实时消息。NSQ的优点是无单点故障、故障容错、高可用性和信息传递的高可靠性。NSQ安装部署简单,容易水平扩展,目前已有很多公司都是采用其作为自身企业内部的实时消息服务。而且它的灵活性很强,支持很多种协议。官方直接提供了拆箱可用的Go库和Python库。好,其他的就不废话了,随便搜索下NSQ相关的博文或者去NSQ的官方网站了解更详细的信息吧。
nsqlookupd:管理nsqd节点拓扑信息并提供最终一致性的发现服务的守护进程
nsqd:负责接收、排队、转发消息到客户端的守护进程,并且定时向nsqlookupd服务发送心跳
nsqadmin:nsq的web统计界面,可实时查看集群的统计数据和执行一些管理任务
utilities:常见基础功能、数据流处理工具,如nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq
(i)首先自然是去官网找到对应系统的较新较稳定的版本安装包,中文站地址:http://golangtc.com/download
由于其官方地址在国外,下载速度可能比较慢,推荐使用本地下载的链接进行下载。
wget http://golangtc.com/static/go/go1.5beta1.linux-amd64.tar.gz
(ii)下载完安装包后解压并且复制到/usr/local/目录下
tar zxvf go1.5beta1.linux-amd64.tar.gz
mv go /usr/local
(iii)GO环境变量配置
打开环境变量配置文件
sudo vim /etc/profile
然后在文件的最后追加以下配置
export GOROOT=/usr/local/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
配置好环境变量后再让它马上生效
source /etc/profile
最后查看是否安装成功
go version
如果控制台打印出了对应的版本号信息,那就恭喜你了,等等。。。别急,这才刚刚开始。
直接命令安装就好
yum install git
命令行直接执行下面的命令安装NSQ
go get github.com/kr/godep
go get github.com/bmizerany/assert
godep get github.com/bitly/nsq/…
注:godev为GO的语言依赖管理包,assert为GO的测试框架,至于最后一个嘛,自己猜吧
到此,NSQ就安装好了,接下来就可以一起愉快的玩耍了
这节的内容就直接翻译了官网的原文了,有兴趣的可以自己去看下
http://nsq.io/overview/quick_start.html
nsqlookupd
nsqd –lookupd-tcp-address=127.0.0.1:4160
nsqadmin –lookupd-http-address=127.0.0.1:4161
curl -d ‘hello world 1’ ‘http://127.0.0.1:4151/put?topic=test’
nsq_to_file –topic=test –output-dir=/tmp –lookupd-http-address=127.0.0.1:4161
curl -d ‘hello world 2’ ‘http://127.0.0.1:4151/put?topic=test’
curl -d ‘hello world 3’ ‘http://127.0.0.1:4151/put?topic=test’
需要特别注意的是这里的nsq_to_file客户端进程并不确定消息什么时候会发布,所以它会在连接没有断开的情况下定时去nsqlookupd中检索消息,确保消息不丢失。
nsq自身提供了一个便于查看和操作的web界面,可以实时查看统计信息和执行一些管理任务。
由于默认情况下linux系统,nsqadmin的默认端口4171限制了对外访问,所以我们要打开4171端口的路由访问限制,便于外部系统的浏览器访问。
iptables -A INPUT -p tcp –dport 4171 -j ACCEPT
参数讲解:
–A 添加一条规则的意思
–p 指定是什么协议,这里是tcp协议
–dport 就是目标端口,当数据从外部进入服务器为目标端口
–sport 数据从服务器出去,则为数据源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收
这里详细的列出了所有的发布的topic主题列表,可以点进去查看单个主题的详细统计信息。还可以管理主题,比如清空主题的消息队列,删除主题,暂停主题等等。
这个页面可以查看当前nsqlookupd协调管理的节点列表,以及一些连接信息,比如端口,连接数,主题和主题数量等等。
这个页面最简洁,中间一个硕大的计数牌,展示已经处理过的消息数目。
这里我们可以创建消息主题和消息通道。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!