topic:一个可供订阅的话题。
channel:属于topic的下一级,一个topic可以有多个channel。 举个例子:
topic:比做一个广播,如交通广播。打开收音机,你可以换很多频率,如果换到91.6MHZ,你就会听到交通广播,(我们这里交通广播是91.6)。相当于你订阅了“交通广播”这个topic。
一个topic下有多个channel,可以看作是广播里会有很多节目,比如路况信息、美食、用车知识等等。每一个节目可以比作一个channel。 如果你一直订阅了交通广播,那你就会收到这个下面所有channel的信息,订阅了topic,就会收到topic下所有消息。
当然,你可能只关注用车知识这个消息,那可以在这个节目的播出时间听这个广播就可以了,等节目播完,就可以不收听这个广播。相当于:nsq里可以只订阅某一个channel的信息。这样的话,一个topic下无关的channel就不会发过来。
如果一个channel有多个订阅者,NSQ会使用负载均衡的策略,给其它一个订阅者发消息。

Go -- NSQ topic和channel的区别的更多相关文章

  1. nsq topic和channel的区别

    topic:一个可供订阅的话题.channel:属于topic的下一级,一个topic可以有多个channel.二者关系可以再参考下面两文章:http://www.cnblogs.com/forres ...

  2. nsq topic

    与Topic相关的代码主要位于nsqd/topic.go中. 上一篇文字我们讲解了下nsq的启动流程.对nsq的整体框架有了一个大概的了解.本篇文章就是由大到小.对于topic这一部分进行详尽的讲解. ...

  3. pipeline和channel的区别

    pipeline和channel的区别 在golang中,学到channel时,往往都会产生一些疑惑,和channel的区别是什么? 以下就是区别: difference channel pipeli ...

  4. golang的缓冲channel和无缓冲channel的区别

    话说golang的channel同步的定义真是让人无力吐槽,码农的用户体验就这么难搞么,超耐磨阿,无缓冲和缓冲居然有这么大区别....靠 转载一段网上的资料 --------------------- ...

  5. JSM的topic和queue的区别

    在JMS(Java消息服务)中,Topic实现publish和subscribe语义.一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个 subscriber(电脑词汇中解释为“用户 ...

  6. 无缓冲和带缓冲channel的区别

    常规定义的channel都是默认不带缓冲的,如下代码所示 package main import ( "fmt" ) func main() { c := make(chan in ...

  7. NSQ:分布式消息队列学习记录

    参考资料: NSQ:分布式的实时消息平台 初识NSQ分布式实时消息架构 深入NSQ之旅 nsq topic和channel的区别

  8. NSQ学习记录

    一.简介 NSQ是一个基于Go语言的开源的分布式实时消息平台,他的代码托管在GitHub上. NSQ可用于大规模系统的实时消息服务,它的设计目标是为在分布式环境下提供一个强大的去除中心化的分布式服务架 ...

  9. nsq (三) 消息传输的可靠性和持久化[一]

    上两篇帖子主要说了一下nsq的拓扑结构,如何进行故障处理和横向扩展,保证了客户端和服务端的长连接,连接保持了,就要传输数据了,nsq如何保证消息被订阅者消费,如何保证消息不丢失,就是今天要阐述的内容. ...

随机推荐

  1. BZOJ3301 P2524 UVA11525 算法解释康托展开

    这三个题的代码分别对应第二个第一个第三个 在刘汝佳蓝书上我遇到了这个康托展开题. 当时去了解了一下,发现很有意思 百度上的康托展开定义 原理介绍 编辑 康托展开运算 其中, 为整数,并且 . 的意义为 ...

  2. bzoj5286 [Hnoi2018]转盘

    题目描述: bz luogu 题解: 看了半个晚上终于明白了. 首先最优决策一定有:在起始点停留一段时间然后一直前进. 解释网上有很多,在这里不赘述了. (由于是环,先把$T$数组倍长.) 首先基于决 ...

  3. 【Java_基础】java类加载过程与双亲委派机制

    1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为 ...

  4. 破解点触码的识别之第三方平台超级鹰的SDK(python3版本)

    import requestsfrom hashlib import md5 class Chaojiying(object): def __init__(self, username, passwo ...

  5. MySQL 查询优化之 Multi-Range Read

    MySQL 查询优化之 Multi-Range Read MRR的工作原理 MRR开启与关闭 使用MRR示例 参考文档 在存储引擎中未缓存的大表,使用辅助索引的range scan检索数据, 可能会导 ...

  6. [Redis]ResponseError: Client sent AUTH, but no password is set

    由于在代码中给redis添加了密码,如下 redis_store = redis.Redis(host='localhost', port=6379, db=4, password='root') 然 ...

  7. Python字符串操作详解

    菜鸟学Python第五天 流程控制 for循环 while循环 VS for循环: while循环:称之为条件循环,循环的次数取决于条件何时为false for循环:称之为迭代器循环,循环的次数取决于 ...

  8. 树形 dp

    // ACM训练联盟周赛     C. Teemo's tree problem There is an apple tree in Teemo's yard. It contains n nodes ...

  9. MFC中Picture控件显示图像

    图片显示在picture控件中,整个软件最小化后图片消失问题. 解决方案:OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面 - CSDN博客  http:// ...

  10. Web Best Practices

    Web Best Practices General Google WebFundamentals - Github JavaScript Style Guide - Github Google In ...