NSQ的消息订阅发布测试
在测试NSQ的Quick Start发现这样一个问题,就是同时只能有一个订阅实例
$ nsq_to_file --topic=test --output-dir=/tmp --lookupd-http-address=127.0.0.1:
当存在两个实例时则消息会被发送给其中的一个实例,而另一个则获取不到消息
在阅读到NSQ中NSQD的启动参数时,发现其支持在一个topic下建立多个channel,通过向topic发送消息,会向所有的channel发布。

测试
//创建topic
$ curl http://10.191.197.209:4151/create_topic?topic=public //创建三个channel $ curl http://10.191.197.209:4151/create_channel?topic=public\&channel=t1
$ curl http://10.191.197.209:4151/create_channel?topic=public\&channel=t2
$ curl http://10.191.197.209:4151/create_channel?topic=public\&channel=t3 //建立nsqdata t1 t2 t3四个文件夹分别存放nsqd数据及三个测试channel数据
mkdir nsqdata t1 t2 t3 //启动nsqd,nsqd可以独立启动,无需启动nsqlookupd
nsqd -data-path=/home/sunsl/nsqdata //启动三个channel的接收端,这里使用nsq_to_file监听nsqd的tcp端口
nsq_to_file --topic=public --channel=t1 --output-dir=/home/sunsl/t1 --nsqd-tcp-address=127.0.0.1:
nsq_to_file --topic=public --channel=t2 --output-dir=/home/sunsl/t2 --nsqd-tcp-address=127.0.0.1:
nsq_to_file --topic=public --channel=t3 --output-dir=/home/sunsl/t3 --nsqd-tcp-address=127.0.0.1: //向public发送测试数据
curl -d '向三个channel发送数据' 'http://10.191.197.209:4151/put?topic=public'
//cat t1,t2,t3文件夹下的log文件,数据显示正常获取
问题
- 接收数据有延迟,原因未知,待查
NSQ的消息订阅发布测试的更多相关文章
- Redis之Redis消息订阅发布简介
概念: Redis消息订阅发布是进程间的一种消息通信模式,发送者pub发送消息,订阅者sub接收消息. 使用须知: 需要先订阅后发布,才能接收到消息.在订阅时,相当于创建了可供发布的频道. 案例: ( ...
- 关于laravel5 消息订阅/发布的理解初
laravel5.4感觉官网文档说滴不够详细...安装predis官网很详细,这里略过.... 生成命令 直接使用 Artisan 命令 make:command,该命令会在 app/Console/ ...
- [SpingBoot guides系列翻译]Redis的消息订阅发布
Redis的消息 部分参考链接 原文 CountDownLatch 概述 目的 这节讲的是用Redis来实现消息的发布和订阅,这里会使用Spring Data Redis来完成. 这里会用到两个东西, ...
- Redis中的简单事物以及消息订阅发布
Redis支持简单的事物,但是没有mysql的Innodb支持的那么的完善 我们接下来看一下Redis和Mysql的事物的一个对比: MySQL Redis 开启 start transactio ...
- 基于Redis的消息订阅/发布
在工业生产设计中,我们往往需要实现一个基于消息订阅的模式,用来对非定时的的消息进行监听订阅. 这种设计模式在 总线设计模式中得到体现.微软以前的WCF中实现了服务总线 ServiceBus的设计模式. ...
- SpringBoot+Redis 实现消息订阅发布
什么是 Redis Redis 是一个开源的使用 ANSI C语言编写的内存数据库,它以 key-value 键值对的形式存储数据,高性能,读取速度快,也提供了持久化存储机制. Redis 通常在项目 ...
- 组件通信之全局事件总线 & 消息订阅发布
全局事件总线 介绍 一种组件间通信的方式,适用于任意组件间通信. 在使用全局事件总线之前需要一些知识准备 所有组件实例的原型对象的原型对象就是 Vue 的原型对象,即VueComponent.prot ...
- 【并发】9、借助redis 实现生产消费,消息订阅发布模式队列
这个就是一个消息可以被多次消费的范例了 其实这个实现的方式可以参考我之前的设计模式,观察者模式 https://www.cnblogs.com/cutter-point/p/5249780.html ...
- C# 数据推送 实时数据推送 轻量级消息订阅发布 多级消息推送 分布式推送
前言 本文将使用一个NuGet公开的组件技术来实现数据订阅推送功能,由服务器进行推送数据,客户端订阅指定的数据后,即可以接收服务器推送过来的数据,包含了自动重连功能,使用非常方便 nuget地址:ht ...
随机推荐
- Ubuntu16.04+Tensorlow+caffe+opencv3.1+theano部署
1.首先安装Ubuntu16.04系统. 2.安装显卡驱动 在官网上下载最新的NVIDIA-Linux-x86_64-375.26.run驱动.然后 Ctrl+Alt+F1进入控制台,输入 sudo ...
- RabbitMQ、Rdis
RabbitMQ RabbitMQ:官方网址:http://www.rabbitmq.com/ Install Erlang # rpm -ivh erlang-18.3-1.el6.x86_64.r ...
- office project 激活
office project 2010激活方式: 图上中,箭头位置,可能没激活,需要软件激活 ( mini-KMS Activator(Office2010激活工具) V1.2 绿色版 ) 激活方式如 ...
- python---tuple元祖
ython的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tup1 = ('physics', 'c ...
- module
扯淡的人 http://www.cnblogs.com/yuanchenqi/articles/5732581.html 不被调用的 要写在这下面 1 if __name__=="__ ...
- Kafka深度解析,众人推荐,精彩好文!
作者: Jason Guo 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据 ...
- H5的一些小问题
[每日壹闻]常用HTML代码解释-------六.歌曲代码(1):在这组代码中,不必管它是mms.http.rtsp,只要看尾缀是asf.wma.wmv.wmv.rm都可适用下面的代码:1. 手动播放 ...
- 利用swap技巧去除容器多余的容量
假设我们预先为容器添加了一部分元素,接着用clear将它们删除,容器内部分配的存储空间实际上不会减小,改变的只是能够访问的元素个数.如下所示: std::vector<int> vec; ...
- Conway's law(康威定律)
Mel Conway 康威在加利福尼亚理工学院获得物理学硕士学位,在凯斯西储大学获得数学博士学位.毕业之后,他参与了很多知名的软件项目,如 Pascal 编辑器.在他的职业生涯中,康威观察到一个现象 ...
- 使用百度地图API产生指定范围的随机点
直接上代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...