1

私は Node の世界から来た Go 初心者で、公式の Bitly Go クライアントを使用してコンシューマを構築しています。AddConcurrentHandlers を使用して 50 のゴルーチンを生成し、メッセージの消防ホースを処理しています。問題は、コンシューマーが遅れて、未処理/受信メッセージの指数関数を nsq に残すことです。他の誰かがこれに遭遇しましたか?

サーバーまたは NSQ の構成に問題があるかどうか、およびすべてのメッセージを受信と同時に処理できるかどうかを確認するために、Node で同じものを構築しました。

行くコード:

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>")
4

2 に答える 2

0

go nsq コンシューマを高速化する別の方法は、https ://github.com/nsqio/go-nsq/issues/187 にあります。

私にとってはうまくいくそのうちの1つは、--max-rdy-countnsqdで増加しているため、消費者を--max_in_flightデフォルトの2500よりもさらに高くすることができます.

于 2016-11-22T08:06:52.573 に答える