我是来自Node世界的Go新手,我正在使用官方Bitly Go客户端构建消费者。我使用AddConcurrentHandlers来产生50个goroutines来处理消息的消防水带。问题在于我的客户在nsq上留下了未处理/收到的消息的指数。有人遇到过这种情况么?nsq go客户端无法跟上
我建于节点同样的事情,看看是否有一个服务器或NSQ配置问题和它能够以最快的速度,因为他们进来处理所有消息
Go代码:
q, _ := nsq.NewConsumer("chat", "golangbetches", config)
q.AddConcurrentHandlers(nsq.HandlerFunc(func(message *nsq.Message) error {
l.Debug("Got a message: %v", message)
message.Finish()
return nil
}), 50)
err := q.ConnectToNSQLookupd("<address here>")
你用什么GOMAXPROCS? – JimB 2015-03-24 21:31:29
你的意思是我给的AddConcurrentHandlers中的第二个参数? api所要求的,可能是为了防止无限数量的例程 – 2015-03-24 21:44:21
不,JimB询问你的环境变量GOMAXPROCS。未设置或太低不会使用所有内核。尝试将其设置为2,4,8和12并观察您的应用程序。 – Volker 2015-03-24 21:50:30