Kafka Consumer NoMethodError:nil的未定义方法`length':NilClass

时间:2017-06-20 21:15:19

标签: ruby apache-kafka apache-zookeeper supervisord

我正在运行多个kafka消费者,每个消费者都在自己的服务器上,这些消费者正在读取远程kafka集群上定义的相同主题。 50台服务器中只有5台成功运行了消费者流程。其余的都没有开始 - 这是日志:

  

I,[2017-06-20T20:25:13.524287#13302] INFO - :已注册   转换处理器为web1:d671ebce-bf76-4917-b504-ffd5924994f2 I,   [2017-06-20T20:25:13.529857#13302]信息 - :已有6个实例   注册: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:无法加载   命令:   /home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb   (/home/deploy/apps/test/current/exe/tracking-events-kafka-consumer.rb)   NoMethodError:未定义的方法length' 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'   /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 method长度为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'
/home/deploy/apps/test/shared/bundle/ruby/2.3.0/bundler/gems/kafka-consumer-268309adaabe/lib/kafka/consumer.rb:88:in
阻止每个'

如果我将消费者停在一个盒子上 - 我可以在之前失败的其中一个盒子上成功启动它。看来我的配置一次只允许5个消费者注册?

我的问题是,为什么会发生这种情况?我该怎么办呢?

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

由于

1 个答案:

答案 0 :(得分:1)

看来,您的所有消费者都在同一个消费者群体中,并订阅了只有5个分区的相同主题。如果您想分配50个消费者的消费费用,您必须使用50个分区配置您的主题。