由于某种原因,我们最近使用不同于最初编写的库来重写我们的消费者和制作人。但是,我在转换后遇到了一些问题。
使用Kafka 0.9.0.2:
8个分区
由于在能够提交偏移之前会导致会话超时的大量处理,因此更新了以下配置选项:
消费者:import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ClassA test = new ClassA();
test.writer();
}
}
:1分40秒
经纪人:session.timeout.ms
:2m和group.max.session.timeout.ms
:6s
我遇到的问题是,在我的消费者的每几个初创公司中,它似乎在尝试获取消息时都会挂起。
没有错误或例外,它不会最终超时,它只是坐着。考虑到我的流程实现了消费者每隔一段时间重新启动,这是一个突破性的问题,我没有想法。我不知道它是否需要进行配置更新,或者我是否未正确处理关闭,这会导致代理超出某种超时。
group.min.session.timeout.ms
consumer = KafkaConsumer(
self.topic,
bootstrap_servers=self.host,
group_id=self.group,
enable_auto_commit=False,
max_partition_fetch_bytes=100*1048576,
auto_offset_reset='earliest',
session_timeout_ms=100000)
print 'Consumer created'
for message in consumer:
print message.offset
print message.value
有没有人看到他们的消费者在创业时挂起?
我在Kafka日志中应该寻找什么?
我也注意到分区的消费越来越慢。