我是來自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