Kafka Consumer NoMethodError: undefined method `length' for nil:NilClass

Kafka Consumer NoMethodError: undefined method `length' for nil:NilClass

我是 运行 多个 kafka 消费者,每个消费者都在自己的服务器上,他们正在读取远程 kafka 集群上定义的同一主题。 50 个服务器中只有 5 个成功 运行 消费者进程。其余的无法启动 - 这是日志:

I, [2017-06-20T20:25:13.524287 #13302] INFO -- : Registered for conversions-processor as web1:d671ebce-bf76-4917-b504-ffd5924994f2 I, [2017-06-20T20:25:13.529857 #13302] INFO -- : 6 instances have been registered: web11:86472d4d-cc95-4a5d-bc52-d1c97a8a9c34, web1:d671ebce-bf76-4917-b504-ffd5924994f2, web14:818a5194-bb51-48d4-bd59-2221a4d3c7ac, web12:11e3f37e-5612-4306-bb1d-bf831da42052, web13:8ace8116-09a4-451c-80b2-8b199ebf45be, web10:8b17b591-9cb0-4193-a460-967ec30cc48c. bundler: failed to load command: /home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb (/home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb) NoMethodError: undefined method length' for nil:NilClass<br> /home/deploy/apps/test/shared/bundle/ruby/2.3.0/bundler/gems/kafka-consumer-268309adaabe/lib/kafka/consumer.rb:130:in manage_partition_consumers'
/home/deploy/apps/test/shared/bundle/ruby/2.3.0/bundler/gems/kafka-consumer-268309adaabe/lib/kafka/consumer.rb:88:in block in each' I, [2017-06-20T20:25:15.320951 #13363] INFO -- : Registered for conversions-processor as web1:15494044-ddf7-4702-9578-ab828be62478 I, [2017-06-20T20:25:15.325198 #13363] INFO -- : 6 instances have been registered: web13:8ace8116-09a4-451c-80b2-8b199ebf45be, web12:11e3f37e-5612-4306-bb1d-bf831da42052, web10:8b17b591-9cb0-4193-a460-967ec30cc48c, web11:86472d4d-cc95-4a5d-bc52-d1c97a8a9c34, web14:818a5194-bb51-48d4-bd59-2221a4d3c7ac, web1:15494044-ddf7-4702-9578-ab828be62478. bundler: failed to load command: /home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb (/home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb) NoMethodError: undefined methodlength' for nil:NilClass
/home/deploy/apps/test/shared/bundle/ruby/2.3.0/bundler/gems/kafka-consumer-268309adaabe/lib/kafka/consumer.rb:130:in manage_partition_consumers'<br> /home/deploy/apps/test/shared/bundle/ruby/2.3.0/bundler/gems/kafka-consumer-268309adaabe/lib/kafka/consumer.rb:88:in block in each'

如果我在一个盒子上停止消费者 - 我可以在之前失败的盒子之一上成功启动它。貌似我的配置一次只能注册5个消费者?

我的问题是,为什么会这样?我该如何解决?

任何建议或见解,一如既往,非常感谢!

谢谢

看来,您所有的消费者都在同一个消费者组中,并且订阅了同一个主题,只有 5 个分区。如果你想将消费费用分配给 50 个消费者,你必须为你的主题配置 50 个分区。