nsq
文章平均质量分 80
思维的深度
这个作者很懒,什么都没留下…
展开
-
NSQ理解
一、介绍 NSQ是Go语言编写的,开源的分布式消息队列中间件,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征,是一个成熟的、已在大规模生成环境下应用的产品。它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。特点: 1. NSQ提供了分...原创 2018-09-17 19:07:03 · 2486 阅读 · 2 评论 -
Golang使用NSQ示例
一、下载 安装包下载地址:https://nsq.io/deployment/installing.html nsq源码地址:https://github.com/nsqio/nsq 官方提供的golang版本客户端:https://github.com/nsqio/go-nsq 二、运行NSQ 首先启动nsqlookudnsqlookupd启动nsqd,并接入...原创 2018-09-17 19:29:09 · 4602 阅读 · 0 评论 -
Golang中heap包源码分析
heap的实现使用到了小根堆,下面先对堆做个简单说明1. 堆概念 堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。 最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键值中最大者。 最小堆:根结点的键值是所有堆结点键值中最小者。2. heap 树的最小元素在根部,为index 0. ...原创 2018-10-19 16:06:56 · 726 阅读 · 0 评论 -
NSQ源码分析(二)—— Topic
Topic是NSQ非常重要的概念,本次主要讲述Topic的获取、新建、Topic中消息的轮询、Topic中消息的来源、Topic的删除和退出以及Topic的暂停和取消暂停topic的相关操作主要在nsq/nsqd/topic.go中首先看下Topic结构体type Topic struct { // 64bit atomic vars need to be first for pr...原创 2018-10-25 18:22:16 · 2046 阅读 · 2 评论 -
NSQ源码分析(三)——disQueue
disQueue是Topic以及Channel中的内存消息满了以后,消息存放的实现方法,diskQueue实现了文件系统支持的FIFO队列,disQueue也是BackendQueue接口的实现,diskQueue在文件读写给我们提供了很好的学习示例。BackendQueue接口// BackendQueue represents the behavior for the seconda...原创 2018-10-25 19:35:05 · 650 阅读 · 0 评论 -
NSQ源码分析(四)——inFlightPqueue和PriorityQueue优先级队列
在Channel结构体中用到了两种优先级队列pqueue.PriorityQueue和inFlightPqueue。deferredMessages map[MessageID]*pqueue.ItemdeferredPQ pqueue.PriorityQueuedeferredMutex sync.MutexinFlightMessages map[Mess...原创 2018-10-26 15:57:35 · 1335 阅读 · 0 评论 -
NSQ源码分析(五)——Channel
Channel相关的代码主要位于nsqd/channel.go, nsqd/nsqd.go中。Channel是消费者订阅特定Topic的一种抽象。对于发往Topic的消息,nsqd向该Topic下的所有Channel投递消息,而同一个Channel只投递一次,Channel下如果存在多个消费者,则随机选择一个消费者做投递。这种投递方式可以被用作消费者负载均衡。Channel会将消息进行排列,...原创 2018-10-26 19:30:59 · 4697 阅读 · 1 评论 -
NSQ源码分析(一)——nsqd的初始化及启动流程
nsq源码地址:https://github.com/nsqio/nsq版本1.1.0NSQ源码分析系列是我通过阅读nsq的源码及结合网上的相关文章整理而成,由于在网上没有找到很详细和完整的文章,故自己亲自整理了一份。如果有错误的地方,还请指正,希望这系列的文章给您带来帮助。NSQD启动流程 nsqd的启动流程在nsq/apps/nsqd/nsqd.go中的Start(...原创 2018-10-24 19:05:09 · 1176 阅读 · 0 评论 -
nsqd中的消息流程
用一张图来看nsqd中的消息流程(可以点击放大查看)原创 2019-03-15 14:38:55 · 678 阅读 · 0 评论