[英]Kafka partition Lag increasing
我有一个使用Kafka 1.0作为队列的应用程序。 Kafka主题有80个分区和80个使用者在运行。 (Kafka-python使用者)。
通过运行命令:
./bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group mygroup --describe
我看到其中一个分区卡在一个偏移处,并且随着向其中添加新记录,延迟持续增加。
上面命令的输出看起来像这样:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST
118 mytopic 37 1924 2782 858 kafka-python-1.3.4-3da99d4d-63e8-4e72-967e-xxxxxxxxxxx/localhost
119 mytopic 38 2741 2742 1 kafka-python-1.3.4-40b44482-39fc-42d0-8f55-xxxxxxxxxxx/localhost
120 mytopic 39 2713 2713 0 kafka-python-1.3.4-4121d080-1d7c-4d6b-ac58-xxxxxxxxxxx/localhost
121 mytopic 40 2687 2688 1 kafka-python-1.3.4-43441f6e-fd35-448e-b791-xxxxxxxxxxx/localhost
是什么原因造成的? 同样,不希望使用reset-offsets命令重置偏移,因为可能不会定期手动监视此服务器。
客户端在Linux m / c中作为并行进程在后台运行:
consumer = KafkaConsumer('mytopic', group_id='mygroup', bootstrap_servers='localhost:9092',
session_timeout_ms=120000, heartbeat_interval_ms=100000, max_poll_records=1,
auto_commit_interval_ms=100000, request_timeout_ms=350000, max_partition_fetch_bytes=3*1024*1024,
value_deserializer=lambda m: json.loads(m.decode('ascii')))
for message in consumer:
msg = json.loads(message.value)
process_message(msg)
如果一段时间后消费者偏移量没有移动,则消费者可能已经停止。 如果消费者偏移量正在移动,但是消费者滞后(日志末尾与消费者偏移量之间的差)增加,则消费者比生产者慢。 如果使用者很慢,通常的解决方案是增加使用者中的并行度。 这可能需要增加主题的分区数量。
在Kafka 文档中阅读更多内容。
简而言之; 您生产的东西多于消耗的东西。 您需要提高消耗率以减少滞后。 您需要添加更多消费者。 如果您只是在测试,那么您的消费者很慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.