nsq消息队列 Java_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
nsq消息队列 Java_NSQ消息队列相关推荐
- 消息长度_nsq消息队列源码分析
nsq的源码比较简单,值得一读,特别是golang开发人员,下面重点介绍nsqd,nsqd是nsq的核心,其他的都是辅助工具,看完这篇文章希望你能对消息队列的原理和实现有一定的了解. nsqd是一个守 ...
- 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?...
大家好,我是 yes. 最近我一直扎在消息队列实现细节之中无法自拔,已经写了 3 篇Kafka源码分析,还剩很多没肝完.之前还存着RocketMQ源码分析还没整理.今儿暂时先跳出来盘一盘大方向上的消息 ...
- ucosii事件控制块------消息邮箱与消息队列
UCOSII 使用叫做事件控制块(ECB)的数据结构来描述诸如信号量.邮箱(消息邮箱)和消息队列这些事件 #define OS_EVENT_EN (((OS_Q_EN > 0u) &&a ...
- RabbitMQ消息超时时间、队列消息超时时间、队列超时时间
欢迎来到梁钟霖个人博客网站.本个人博客网站提供最新的站长新闻,各种互联网资讯. 还提供个人博客模板,最新最全的java教程,java面试题.在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿 ...
- redis stream java消息队列_Redis-消息队列的两种实现方式
索引: 基于list的实现方式 基于publish/subscribe 实战 消息队列简介 消息队列:是消息的顺序集合. 比如网站的PV统计和查看,传统方式就是每个页面发一个AJAX然后mysql给P ...
- 【Android 异步操作】HandlerThread 示例 ( 初始化并执行 | 获取Looper | 获取 Handler | 获取消息队列 | 设置空闲队列 | 代码示例 )
文章目录 一.HandlerThread 初始化 二.HandlerThread 获取Looper 三.HandlerThread 获取消息队列 MessageQueue 四.HandlerThrea ...
- 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )
文章目录 一.Handler 构造函数 二.Handler 消息分发 三.MessageQueue 消息队列相关函数 一.Handler 构造函数 一般使用 Handler 时 , 调用 Handle ...
- 【Android 异步操作】手写 Handler ( 消息队列 MessageQueue | 消息保存到链表 | 从链表中获取消息 )
文章目录 一.MessageQueue 消息队列存储消息 二.MessageQueue 消息队列取出消息 三.消息队列完整代码 一.MessageQueue 消息队列存储消息 Message 链表 : ...
- Linux c 基于内存的进程通信—共享内存、共享队列(消息队列)
基于内存的进程通信: 1. 内核共享内存 编程模型: 1.1.创建共享内存,得到一个ID shmget 1.2.把ID影射成虚拟地址(挂载) shmat 1.3.使用虚拟地址访问 ...
最新文章
- 比较简单的创造印象派画风的网站
- ARM MOV指令对立即数的要求
- c mysql web开发实例教程_java web 开发入门实例
- xml的方式配置AOP:Aspect Oriented Programming
- 数据库有哪些设计技巧
- 17.立体匹配——匹配两个图 Matlab实战,立体效果_3
- pwm控制舵机转动角度程序_舵机的内部结构及工作原理
- java 不定参数_Java不定参数
- 原创内容将成网络视频的一支奇军
- Java笔记(十七) 异步任务执行服务
- 小说阅读器java源代码_Android项目源码任阅小说阅读器高仿追书神器
- 非合作博弈篇——纳什均衡(Nash Equilibrium)
- macOS Ventura 正式版发布 苹果官方详解macOS 13 Ventura正式版
- 使用adblock plus浏览器插件屏蔽广告
- 基于SSH框架的人力资源管理系统设计与实现
- 地坛——我的最爱 (2006-11-12 09:33:18)
- 服务器被攻击的常见手段以及解决方法
- 第三方登录mysql表_浅谈数据库用户表结构设计,第三方登录
- 白发怎么调理成黑发,白发能调理成黑发可能吗?
- GD32F20x官方以太网例程勘误
热门文章
- 监控RecyclerView有效曝光数据
- 7000计算机组装,现在7000元可以组装台什么配置的电脑
- HBase安装与应用
- 盘丝洞服务器维护,5月26日维护公告 多项玩法更新
- 利用“计算器”和公式做房贷计算
- java.lang.RuntimeException: Unable to get provider android.provider.DocumentsProvider: java.lang.Ins
- 苹果cms10怎么用php代码,苹果cms v10 宝塔安装配置详细方法及下载地址
- java计算机毕业设计甜心驿站饮品信息管理源代码+数据库+系统+lw文档
- Java设计模式之结构型:桥接模式
- 天图资本通过香港上市聆讯:上半年利润下滑24%,王永华为董事长