摘要: 看了一阵子nsq源码,出去细节大体的流程基本算是看明白了 下面来总结一下,看下面的图 个人觉得其实只要搞清楚几个Loop,我称为“守护”协程,也就是一直在for... select... 里面跑着不退出的几个关键函数。 看上面的图,有几个呢? 从底层依次往上看 diskqueue.IoLoop(): 阅读全文
posted @ 2021-03-12 15:33 werbenhu 阅读(112) 评论(0) 推荐(0)
摘要: 一、TCP Handler nsqd里面的Main函数。 //nsqd.go func (n *NSQD) Main() error { //... n.waitGroup.Wrap(func() { exitFunc(protocol.TCPServer(n.tcpListener, n.tcpS 阅读全文
posted @ 2021-03-12 14:50 werbenhu 阅读(379) 评论(0) 推荐(0)
摘要: channel有下面几个重要的成员,其实跟topic还有点像,都有一个memoryMsgChan和diskqueue memoryMsgChan: 这是存放消息的内存,就是一个通道,通道的大小MemQueueSize, 默认配置是10000,也就是如果堆积的消息超过10000就会使用磁盘了 back 阅读全文
posted @ 2021-03-12 10:56 werbenhu 阅读(208) 评论(0) 推荐(0)