![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
nsq源码分析
shanhuhai5739
这个作者很懒,什么都没留下…
展开
-
nsq源码分析(1):代码结构
nsq源码分析(1):代码结构nsq项目介绍github项目地址:[nsq][1]NSQ是由3个进程组成的: nsqd:接收消息、分发消息到消费者客户端的进程 nsqlookupd: 管理拓扑信息并提供最终一致性的发现服务。 nsqadmin:用于实时查看集群的统计数据(并且执行各种各样的管理任务)。代码目录结构git clone https://github.com/nsqio/nsq.gi原创 2017-06-07 13:20:03 · 4477 阅读 · 2 评论 -
nsq源码分析(2):nsqlookup之启动和停止
nsq源码分析(2):nsqlookup之启动nsqlookup使用go-svc包https://github.com/judwhite/go-svc原创 2017-06-07 13:35:36 · 1810 阅读 · 1 评论 -
nsq源码分析(2):nsqlookup之tcp服务
nsq源码分析(2):nsqlookup之tcp服务通信协议本章内容涉及tcp协议的封包解包内容,请参考 nsq tcp协议规范[ ][ ][V][1]client连接后,客户端必须发送一个4 字节的 “magic” 标识码来选择通讯协议的版本。启动tcp服务nsqlookupd/nsqlookupd.go // 启动tcp服务 tcpListener, err := net.List原创 2017-06-07 16:13:17 · 1009 阅读 · 2 评论 -
nsq源码分析(2):nsqlookup之RegistrationDB数据库
nsq源码分析(2):nsqlookup之RegistrationDB数据库 RegistrationDB保存集群中nsqd的拓扑信息及注册和心跳信息 nsqlookupd参考资料RegistrationDB结构体 RegistrationDB是一个map类型 map[Registration]Producers ,在读写操作过程中使用读写锁来保证数据一致性nsqlookupd/r原创 2017-06-08 14:59:50 · 764 阅读 · 0 评论 -
nsq源码分析(2):nsqlookup之http服务
nsq源码分析(2):nsqlookup之http服务nsqlookup使用了httprouter高性能http请求路由库httprouter的路由信息* nsqlookupd/nsqlookupd.go * // 启动http服务 httpListener, err := net.Listen("tcp", l.opts.HTTPAddress) if err != nil原创 2017-06-07 15:59:31 · 1062 阅读 · 1 评论 -
nsq源码分析(3):nsqd之数据持久化
nsq源码分析(3):nsqd之数据持久化原创 2017-06-08 16:25:54 · 2185 阅读 · 0 评论 -
nsq源码分析(3):nsqd之数据持久化2
nsq源码分析(3):nsqd之数据持久化2 当nsqd进程退出时,将内存中的数据写入到磁盘 当nsqd进程启动时,将磁盘中的数据读入到内存 nsqd退出时写入本地元数据nsqd/nsqd.gofunc (n *NSQD) Exit() { n.Lock() err := n.PersistMetadata() if err != nil { n原创 2017-06-15 11:47:53 · 1742 阅读 · 2 评论