NSQ
进阶的工程师
菜鸡程序员
展开
-
NSQ系列(一):概述和架构
关于NSQNSQ是Go开发的,比较轻量的一款MQ。公司很多项目使用了NSQ作为消息队列,也借此了解下NSQ。先说下NSQ的几个特性,分布式部署,没有单点问题支持水平扩容消息优先存储在内存(超过限制后可以保持在磁盘)Consumer可以动态发现Producer架构集群两个主要角色:nsqd和nsqlookupd。nsqdnsqd负责提供集群的主要功能,一个nsqd实例同时处理...原创 2019-10-03 21:42:16 · 881 阅读 · 0 评论 -
NSQ系列(二):nsqd原理和实现
在前一篇文章,我们大概了解了NSQ的集群架构和交互流程,这里我们将结合代码详细了解下nsqd的一些特性是如何实现的(为了避免篇幅过长,贴的代码会删除一部分)。数据结构先看下数据结构的设计,NSQDnsq的数据结构定义如下,type NSQD struct { // 64bit atomic vars need to be first for proper alignment on 32...原创 2019-10-04 16:46:03 · 1697 阅读 · 0 评论 -
NSQ系列(三):nsqlookupd原理和实现
nsqlookupd的角色类似于注册中心,管理着nsqd -> Topic -> Channel的拓扑信息,提供Client查询Topic和Channel的信息。nsqlookupd主要提供两种接口:TCP接口,用于nsqd广播信息;另外就是HTTP接口,让Client可以服务发现或者admin可以进行管理操作。启动方式和nsqd类似,func (p *program) Start...原创 2019-10-04 23:36:55 · 1352 阅读 · 0 评论