func mustStartNSQLookupd(opts *nsqlookupd.Options) (*net.TCPAddr, *net.TCPAddr, *nsqlookupd.NSQLookupd) { opts.TCPAddress = "127.0.0.1:0" opts.HTTPAddress = "127.0.0.1:0" lookupd := nsqlookupd.New(opts) lookupd.Main() return lookupd.RealTCPAddr(), lookupd.RealHTTPAddr(), lookupd }
func (p *program) Start() error { glog.InitWithFlag(flagSet) flagSet.Parse(os.Args[1:]) if *showVersion { fmt.Println(version.String("nsqlookupd")) os.Exit(0) } var cfg map[string]interface{} if *config != "" { _, err := toml.DecodeFile(*config, &cfg) if err != nil { log.Fatalf("ERROR: failed to load config file %s - %s", *config, err.Error()) } } opts := nsqlookupd.NewOptions() options.Resolve(opts, flagSet, cfg) if opts.LogDir != "" { glog.SetGLogDir(opts.LogDir) } nsqlookupd.SetLogger(opts) glog.StartWorker(time.Second * 2) daemon := nsqlookupd.New(opts) daemon.Main() p.nsqlookupd = daemon return nil }
func bootstrapNSQCluster(t *testing.T) (string, []*nsqd.NSQD, []*nsqdserver.NsqdServer, []*nsqlookupd.NSQLookupd, *NSQAdmin) { lgr := newTestLogger(t) nsqlookupdOpts := nsqlookupd.NewOptions() nsqlookupdOpts.TCPAddress = "127.0.0.1:0" nsqlookupdOpts.HTTPAddress = "127.0.0.1:0" nsqlookupdOpts.BroadcastAddress = "127.0.0.1" nsqlookupdOpts.Logger = lgr nsqlookupd.SetLogger(nsqlookupdOpts) nsqlookupd1 := nsqlookupd.New(nsqlookupdOpts) go nsqlookupd1.Main() // wait http server time.Sleep(time.Second) if nsqlookupd1.RealHTTPAddr().String() == "" { t.Fatal("lookupd should not empty") } nsqdOpts := nsqd.NewOptions() nsqdOpts.TCPAddress = "127.0.0.1:0" nsqdOpts.HTTPAddress = "127.0.0.1:0" nsqdOpts.BroadcastAddress = "127.0.0.1" nsqdOpts.NSQLookupdTCPAddresses = []string{nsqlookupd1.RealTCPAddr().String()} nsqdOpts.Logger = lgr tmpDir, err := ioutil.TempDir("", fmt.Sprintf("nsq-test-%d", time.Now().UnixNano())) if err != nil { panic(err) } nsqdOpts.DataPath = tmpDir nsqd1, nsqd1Server := nsqdserver.NewNsqdServer(nsqdOpts) go nsqd1Server.Main() t.Log("nsqd started") nsqadminOpts := NewOptions() nsqadminOpts.HTTPAddress = "127.0.0.1:0" nsqadminOpts.NSQLookupdHTTPAddresses = []string{nsqlookupd1.RealHTTPAddr().String()} nsqadminOpts.Logger = lgr nsqadmin1 := New(nsqadminOpts) go nsqadmin1.Main() time.Sleep(100 * time.Millisecond) return tmpDir, []*nsqd.NSQD{nsqd1}, []*nsqdserver.NsqdServer{nsqd1Server}, []*nsqlookupd.NSQLookupd{nsqlookupd1}, nsqadmin1 }