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

nsq消息队列 Java_NSQ消息队列相关推荐

  1. 消息长度_nsq消息队列源码分析

    nsq的源码比较简单,值得一读,特别是golang开发人员,下面重点介绍nsqd,nsqd是nsq的核心,其他的都是辅助工具,看完这篇文章希望你能对消息队列的原理和实现有一定的了解. nsqd是一个守 ...

  2. 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?...

    大家好,我是 yes. 最近我一直扎在消息队列实现细节之中无法自拔,已经写了 3 篇Kafka源码分析,还剩很多没肝完.之前还存着RocketMQ源码分析还没整理.今儿暂时先跳出来盘一盘大方向上的消息 ...

  3. ucosii事件控制块------消息邮箱与消息队列

    UCOSII 使用叫做事件控制块(ECB)的数据结构来描述诸如信号量.邮箱(消息邮箱)和消息队列这些事件 #define OS_EVENT_EN (((OS_Q_EN > 0u) &&a ...

  4. RabbitMQ消息超时时间、队列消息超时时间、队列超时时间

    欢迎来到梁钟霖个人博客网站.本个人博客网站提供最新的站长新闻,各种互联网资讯. 还提供个人博客模板,最新最全的java教程,java面试题.在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿 ...

  5. redis stream java消息队列_Redis-消息队列的两种实现方式

    索引: 基于list的实现方式 基于publish/subscribe 实战 消息队列简介 消息队列:是消息的顺序集合. 比如网站的PV统计和查看,传统方式就是每个页面发一个AJAX然后mysql给P ...

  6. 【Android 异步操作】HandlerThread 示例 ( 初始化并执行 | 获取Looper | 获取 Handler | 获取消息队列 | 设置空闲队列 | 代码示例 )

    文章目录 一.HandlerThread 初始化 二.HandlerThread 获取Looper 三.HandlerThread 获取消息队列 MessageQueue 四.HandlerThrea ...

  7. 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )

    文章目录 一.Handler 构造函数 二.Handler 消息分发 三.MessageQueue 消息队列相关函数 一.Handler 构造函数 一般使用 Handler 时 , 调用 Handle ...

  8. 【Android 异步操作】手写 Handler ( 消息队列 MessageQueue | 消息保存到链表 | 从链表中获取消息 )

    文章目录 一.MessageQueue 消息队列存储消息 二.MessageQueue 消息队列取出消息 三.消息队列完整代码 一.MessageQueue 消息队列存储消息 Message 链表 : ...

  9. Linux c 基于内存的进程通信—共享内存、共享队列(消息队列)

    基于内存的进程通信: 1.      内核共享内存 编程模型:     1.1.创建共享内存,得到一个ID  shmget 1.2.把ID影射成虚拟地址(挂载)  shmat 1.3.使用虚拟地址访问 ...

最新文章

  1. 比较简单的创造印象派画风的网站
  2. ARM MOV指令对立即数的要求
  3. c mysql web开发实例教程_java web 开发入门实例
  4. xml的方式配置AOP:Aspect Oriented Programming
  5. 数据库有哪些设计技巧
  6. 17.立体匹配——匹配两个图 Matlab实战,立体效果_3
  7. pwm控制舵机转动角度程序_舵机的内部结构及工作原理
  8. java 不定参数_Java不定参数
  9. 原创内容将成网络视频的一支奇军
  10. Java笔记(十七) 异步任务执行服务
  11. 小说阅读器java源代码_Android项目源码任阅小说阅读器高仿追书神器
  12. 非合作博弈篇——纳什均衡(Nash Equilibrium)
  13. macOS Ventura 正式版发布 苹果官方详解macOS 13 Ventura正式版
  14. 使用adblock plus浏览器插件屏蔽广告
  15. 基于SSH框架的人力资源管理系统设计与实现
  16. 地坛——我的最爱 (2006-11-12 09:33:18)
  17. 服务器被攻击的常见手段以及解决方法
  18. 第三方登录mysql表_浅谈数据库用户表结构设计,第三方登录
  19. 白发怎么调理成黑发,白发能调理成黑发可能吗?
  20. GD32F20x官方以太网例程勘误

热门文章

  1. 监控RecyclerView有效曝光数据
  2. 7000计算机组装,现在7000元可以组装台什么配置的电脑
  3. HBase安装与应用
  4. 盘丝洞服务器维护,5月26日维护公告 多项玩法更新
  5. 利用“计算器”和公式做房贷计算
  6. java.lang.RuntimeException: Unable to get provider android.provider.DocumentsProvider: java.lang.Ins
  7. 苹果cms10怎么用php代码,苹果cms v10 宝塔安装配置详细方法及下载地址
  8. java计算机毕业设计甜心驿站饮品信息管理源代码+数据库+系统+lw文档
  9. Java设计模式之结构型:桥接模式
  10. 天图资本通过香港上市聆讯:上半年利润下滑24%,王永华为董事长