func main() { flagSet.Parse(os.Args[1:]) if *showVersion { fmt.Println(version.String("nsqlookupd")) return } signalChan := make(chan os.Signal, 1) signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM) 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) daemon := nsqlookupd.New(opts) daemon.Main() <-signalChan daemon.Exit() }
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 }
// we need a bit of magic first, to turn on some nsq stuff (thanks snakes) func bootstrapNSQCluster(t *testing.T) (string, []*nsqd.NSQD, []*nsqlookupd.NSQLookupd) { nsqlookupdOpts := nsqlookupd.NewOptions() nsqlookupdOpts.TCPAddress = "127.0.0.1:0" nsqlookupdOpts.HTTPAddress = "127.0.0.1:0" nsqlookupdOpts.BroadcastAddress = "127.0.0.1" nsqlookupd1 := nsqlookupd.New(nsqlookupdOpts) go nsqlookupd1.Main() time.Sleep(100 * time.Millisecond) 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()} tmpDir, err := ioutil.TempDir("", fmt.Sprintf("nsq-test-%d", time.Now().UnixNano())) if err != nil { panic(err) } nsqdOpts.DataPath = tmpDir nsqd1 := nsqd.New(nsqdOpts) go nsqd1.Main() time.Sleep(100 * time.Millisecond) return tmpDir, []*nsqd.NSQD{nsqd1}, []*nsqlookupd.NSQLookupd{nsqlookupd1} }
func (b *Broker) StartLookUp() { b.logger.Info("start lookup service") var wg sync.WaitGroup wg.Add(1) go func() { opt := nsqlookupd.NewOptions() opt.TCPAddress = b.LookUpTcpAddrr + ":" + b.LookUpTcpPort opt.HTTPAddress = b.LookUpHttpAddrr + ":" + b.LookUpHttpPort b.lookup = nsqlookupd.New(opt) b.lookup.Main() wg.Done() b.logger.Info("lookup service started") }() wg.Wait() }
func (p *program) Start() error { 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) daemon := nsqlookupd.New(opts) daemon.Main() p.nsqlookupd = daemon return nil }