NSQ消息队列

1.安装

根据官方安装指引页面下载最新稳定版的二进制包
https://nsq.io/deployment/installing.html
wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-1.1.0.linux-amd64.go1.10.3.tar.gz
解压安装
tar zxvf nsq-1.1.0.linux-amd64.go1.10.3.tar.gz
mv nsq-1.1.0.linux-amd64.go1.10.3 /usr/local/
cd /usr/local/
做个软链, 最终 /usr/local/nsq 将作为使用目录
ln -s nsq-1.1.0.linux-amd64.go1.10.3 nsq

1.1启动进程

nsqlookupd

  • nsqlookupd的主要职责是维护拓扑信息, 并且接受客户端请求发现指定topic的nsqd生产节点是哪些, 并返回给客户端;
  • nsqd节点会广播话题和channel信息给nsqlookupd;
  • nsqlookupd可以有多个

[root@localhost bin]# ./nsqlookupd
[nsqlookupd] 2018/08/29 10:24:57.331679 INFO: nsqlookupd v1.1.0 (built w/go1.10.3)
[nsqlookupd] 2018/08/29 10:24:57.332409 INFO: TCP: listening on [::]:4160
[nsqlookupd] 2018/08/29 10:24:57.332448 INFO: HTTP: listening on [::]:4161
监听的端口:
4160 TCP 用于接收nsqd的广播
4161 HTTP 用于接收客户端发送的管理和发现操作请求(增删话题,节点等管理查看性操作等, 真正的生产与消费使用的是nsqd的4151端口)

nsqd

  • nsqd 服务器多个才有集群的意义
  • nsqd 才是真正服务生产者与消费者的进程
  • nsqd 必须指定lookupd-tcp-address 上报自己的信息和状态
  • 在生产环境请不要使用e2e-processing-latency*相关参数, 会消耗大量CPU资源

启动nsqd
[root@localhost bin]# ./nsqd --lookupd-tcp-address=192.168.1.211:4160 -broadcast-address 192.168.1.211 -data-path /data/nsq_data
参数说明:
--lookupd-tcp-address 指定nsqlookupd的ip和端口, 广播自身信息和状态给nsqlookupd
-broadcast-address 是用指定的地址与各个组件进行通信, 默认会使用主机名, 主机名不通时使用ip地址代替
-data-path 落地数据保存的地方
监听端口:
4150 TCP
4151 HTTP

nsqadmin

nsqadmin 提供WEB UI界面(看板)

启动nsqadmin
[root@localhost bin]# ./nsqadmin --lookupd-http-address=192.168.1.211:4161
参数:
--lookupd-http-address 指定从那个nsqlookupd服务读取信息
监听端口:
4171 HTTP
浏览器打开UI界面
http://x.x.x.x:4171

NSQ UI界面

1.2测试

生产消息

curl -d 'hello world 12456' 'http://192.168.1.200:4151/pub?topic=test'

说明: 生产者是直接请求nsqd, 将消息入列的, 并不会经过nsqlookupd.
所以这里会存在一个问题, 当有多台nsqd的时候, 应该使用第三方负载均衡设备或服务进行自动负载与均衡.
topic无需事先创建, 直接指定即可, nsqd会自动创建这个topic

消费消息

nsq_tail --nsqd-tcp-address 192.168.1.200:4150 --topic test
nsq_tail --lookupd-http-address 192.168.1.211:4161 --topic test
说明: 消费时, 可以直接请求nsqd, 也可以请求nslookupd; 但建议请求nslookupd进行消费, 反对直接请求nsqd进行消费.

channel

一个topic可以在多个nsqd里存在, topic可以有channel, 也可由没有channel;
每个channel相当于是一个消息通道的副本. 比如同一个topic里面有A和B两个channel, 当A中的消息被消费后, B中的消息并未被消费.


topic channel

当topic中存在channel时, 消费请求必须指定channel名称
nsq_tail --lookupd-http-address 192.168.1.211:4161 --topic test --channel name

1.3 nsqadmin 说明

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容