nsq topic和channel的区别
topic:一个可供订阅的话题。
channel:属于topic的下一级,一个topic可以有多个channel。
二者关系可以再参考下面两文章:
http://www.cnblogs.com/forrestsun/p/3892710.html
http://www.linuxeden.com/html/news/20140301/148960.html
举个例子:
topic:比做一个广播,如交通广播。打开收音机,你可以换很多频率,如果换到91.6MHZ,你就会听到交通广播,(我们这里交通广播是91.6)。相当于你订阅了“交通广播”这个topic。
一个topic下有多个channel,可以看作是广播里会有很多节目,比如路况信息、美食、用车知识等等。每一个节目可以比作一个channel。
如果你一直订阅了交通广播,那你就会收到这个下面所有channel的信息,订阅了topic,就会收到topic下所有消息。
当然,你可能只关注用车知识这个消息,那可以在这个节目的播出时间听这个广播就可以了,等节目播完,就可以不收听这个广播。相当于:nsq里可以只订阅某一个channel的信息。这样的话,一个topic下无关的channel就不会发过来。
如果一个channel有多个订阅者,NSQ会使用负载均衡的策略,给其它一个订阅者发消息
nsq topic和channel的区别的更多相关文章
- Go -- NSQ topic和channel的区别
topic:一个可供订阅的话题.channel:属于topic的下一级,一个topic可以有多个channel. 举个例子:topic:比做一个广播,如交通广播.打开收音机,你可以换很多频率,如果换到 ...
- nsq topic
与Topic相关的代码主要位于nsqd/topic.go中. 上一篇文字我们讲解了下nsq的启动流程.对nsq的整体框架有了一个大概的了解.本篇文章就是由大到小.对于topic这一部分进行详尽的讲解. ...
- pipeline和channel的区别
pipeline和channel的区别 在golang中,学到channel时,往往都会产生一些疑惑,和channel的区别是什么? 以下就是区别: difference channel pipeli ...
- golang的缓冲channel和无缓冲channel的区别
话说golang的channel同步的定义真是让人无力吐槽,码农的用户体验就这么难搞么,超耐磨阿,无缓冲和缓冲居然有这么大区别....靠 转载一段网上的资料 --------------------- ...
- JSM的topic和queue的区别
在JMS(Java消息服务)中,Topic实现publish和subscribe语义.一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个 subscriber(电脑词汇中解释为“用户 ...
- 无缓冲和带缓冲channel的区别
常规定义的channel都是默认不带缓冲的,如下代码所示 package main import ( "fmt" ) func main() { c := make(chan in ...
- NSQ:分布式消息队列学习记录
参考资料: NSQ:分布式的实时消息平台 初识NSQ分布式实时消息架构 深入NSQ之旅 nsq topic和channel的区别
- NSQ学习记录
一.简介 NSQ是一个基于Go语言的开源的分布式实时消息平台,他的代码托管在GitHub上. NSQ可用于大规模系统的实时消息服务,它的设计目标是为在分布式环境下提供一个强大的去除中心化的分布式服务架 ...
- nsq (三) 消息传输的可靠性和持久化[一]
上两篇帖子主要说了一下nsq的拓扑结构,如何进行故障处理和横向扩展,保证了客户端和服务端的长连接,连接保持了,就要传输数据了,nsq如何保证消息被订阅者消费,如何保证消息不丢失,就是今天要阐述的内容. ...
随机推荐
- 自定义ViewGroup添加布局动画
声明几个属性值: <declare-styleable name="GridImageViewGroup"> <attr name="childVert ...
- javascript—Mach的一些常用方法
1.Math.random():返回 0 ~ 1 之间的随机数. 2.Math.round():四舍五入取整. 3.Math.ceil():向上取整; 例如:a=1.2,b=5.8; ...
- JS基础速成(三)- DOM(文件对象模型)
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.DOM树的基本结构 DOM节点分为三大类:元素节点(标签节点),属性节 ...
- 关于.h .lib .dll的总结
对VC工程中的调用过程有些迷糊,所以就理清一下: 1.#include "...h"为头文件预编译命令,如果这些代码被修改,则需要重新编译生成预编译头文件. 预编译头的概念(转载) ...
- 【转】学习FFmpeg API – 解码视频
ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料.可惜的是其针对的ffmpeg版本已经比较老了,而ffmpeg的更新又很快 ...
- css 字体两端对齐
我想作为一个前端工作者,总会遇到这样的场景,一个表单展示的字段标题有4个字也有2个字的时候,这样子同时存在想展示的美观一点,就需要字体两端对齐了,其实实现方式很简单,我针对其中一种来做下介绍,以后方法 ...
- Mybatis 系列9
上篇系列8中 简单介绍了mybatis的查询,至此,CRUD都已讲完. 本文将介绍mybatis强大的动态SQL. 那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方 ...
- 【计算机视觉】深度相机(一)--TOF总结
http://www.voidcn.com/blog/lg1259156776/article/p-6302915.html 1.1 TOF初探 TOF是Time of flight的简写,直译为飞行 ...
- 关于在IJ中使用maven projects 的Lifecycle中打包package报expected START_TAG or END_TAG not TEXT
报错指定到maven本地仓库下的settings.xml某一行,如下列JDK配置: <profiles> <profile> <id>jdk-1.8</ ...
- UE4笔记:利用Widget设计一个切换材质功能
UE4引擎中的Widget蓝图是一个重要的工具,可用于场景中的页面叠加,镜头绑定,场景切换等多处地方,在这里笔者介绍一种利用控件蓝图和场景中物体进行信息交互的方法,直观的体现就是进行物体的材质切换. ...