2017-10-08 164 views
0

多流应用我有2个分区和2所相同application.id和不同的接收器主题卡夫卡流应用的输入话题。卡夫卡流:多主题分区

1)我开始两个应用程序一起,他们开始接收数据,但是当我杀的应用之一,另外一个一直陷入在此。 (仅供参考,消费者设置已SESSION_TIMEOUT_MS_CONFIG设置为120000)

[2017年10月8日00:26:17297] DEBUG [卡夫卡协调器心跳线程| ]发送对组心跳请求test.joins.hourly到协调器:9092(ID:2147483647机架:空)(org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [2017年10月8日00:26:17398 ] DEBUG [kafka-coordinator-heartbeat-thread | test.joins.hourly]所获的test.joins.hourly组(org.apache.kafka.clients.consumer.internals.AbstractCoordinator)成功的心跳响应

2)怎样才能确保第二个应用程序启动处理来自两个分区的记录?我怎样才能证明这一点?

请帮忙!

回答

0

你所说的“另一种是卡”是什么意思?你等了多久才开始消费?

在你的情况下,它可能需要2分钟簇你杀了他们中的一个后,平衡你的消费者。它也取决于heartbeat.interval.ms - 它越小,再平衡的平均时间就越短。

+0

我得到这个错误'org.apache.kafka.streams.errors.LockException:任务[0_1]无法锁定任务0_1'国家目录和上述发送心跳请求,并获得成功的心跳不断循环中运行更多比2分钟。 – NoName

+1

锁应该最终被释放。如果没有,这是一个错误。你使用什么版本?与日志相关的错误随着时间的推移得到修复 - 升级到最新版本可能会解决问题(请注意,Kafka 1.0即将发布)。如果您的应用程序现在处于不良状态,则可能需要手动删除状态目录以获得干净的重新启动。 –