本文主要是介绍nsq源码阅读(二)nsqlookup-1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
nsqlookupd 源码阅读(1)
daemon的启动过程
1. Init
2. start
func (p *program) Start() error {opts := nsqlookupd.NewOptions()flagSet := nsqlookupdFlagSet(opts)..............daemon := nsqlookupd.New(opts)daemon.Main()p.nsqlookupd = daemonreturn nil
}
(1) 首先new一个options结构
type Options struct {// 日志等级LogLevel string `flag:"log-level"`// 日志前缀LogPrefix string `flag:"log-prefix"`// true 使用LogLevel 来设定日志等级,false 不允许,默认是DEBUGVerbose bool `flag:"verbose"` // for backwards compatibility// 日志接口Logger Logger// 根据LogLevel 和 Verbose 来得到的真正的日志等级logLevel lg.LogLevel // private, not really an option// 监听的tcp地址TCPAddress string `flag:"tcp-address"`// 监听的http的地址HTTPAddress string `flag:"http-address"`// 广播地址默认是 主机名hostnameBroadcastAddress string `flag:"broadcast-address"`// 从上一次ping之后 生产者驻留在nsqlookup的时长InactiveProducerTimeout time.Duration `flag:"inactive-producer-timeout"`// tombstone的驻留时长TombstoneLifetime time.Duration `flag:"tombstone、、 tombstone的驻留时长-lifetime"`
}func NewOptions() *Options {hostname, err := os.Hostname()if err != nil {log.Fatal(err)}ret
这篇关于nsq源码阅读(二)nsqlookup-1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!