nsqlookupd httpServer 命令分析

这篇文章分析 httpServer 处理什么命令,基本处理过程

路径分类

1、"/ping"     健康检查,返回 “OK”

2、"/lookup”     topic,channel 查询

     reqParams, err := util.NewReqParams(req)
     topicName, err := reqParams.Get("topic”)

     解析请求参数 topic

     registration := s.context.nsqlookupd.DB.FindRegistrations("topic", topicName, “”)
     // 查找 topic,来验证用的,如果 registration 长度为0,提示出错

     channels := s.context.nsqlookupd.DB.FindRegistrations("channel", topicName, "*").SubKeys()
     // 查找 topic 所有的 channel

     producers := s.context.nsqlookupd.DB.FindProducers("topic", topicName, “")
     // 找到所有的生产者

     producers = producers.FilterByActive(s.context.nsqlookupd.options.InactiveProducerTimeout,
          s.context.nsqlookupd.options.TombstoneLifetime)
     // 过滤, 两个超时参数,300s 和 45s


3、"/topics"     查询所有的 topic

4、"/channels"     查询某个 topic 所有的 channel

5、"/nodes"     查找所有的 client,topic

6、"/topic/create”     创建 topic

7、"/topic/delete”     删除 topic 关联的所有的 channel,继而删除 topic

8、"/topic/tombstone”     ? 暂时没看

9、"/channel/create”     创建 channel

10、"/channel/delete”     删除 channel
      

你可能感兴趣的:(nsq,nsq源码分析)