我已经使用Spring Kafka设置了许多Kafka消费者,效果很好。但是,偶然地,我发现当一个使用者崩溃时,我看不到任何异常进入错误日志。我只在catalina.out中看到以下内容:
2019-04-13 02:07:37.008 INFO 17875 --- [alconDataRiver1] o.a.k.c.c.internals.AbstractCoordinator : [Consumer clientId=consumer-6, groupId=dataRiver1] Group coordinator xxx-xx2x1-xxx-xxx.xxxxxx.com:38900 (id: 2147483646 rack: null) is unavailable or invalid, will attempt rediscovery
......
2019-04-13 02:07:38.014 INFO 17875 --- [ntainer#2-0-C-1] o.a.kafka.clients.FetchSessionHandler : [Consumer clientId=consumer-2, groupId=dataRiver1] Error sending fetch request (sessionId=1593042214, epoch=92705) to node 1: org.apache.kafka.common.errors.DisconnectException.
我不知道为什么在这种情况下没有抛出异常。
我正在为项目使用Spring Boot。
这是我设置消费者的方式:
@Bean
public ConsumerFactory<String, GenericData.Record> fasConsumerFactoryFirst() {
Map<String, Object> dataRiverProps = getFasDataRiverProps();
dataRiverProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, env.getProperty("fas1.bootstrap.servers"));
dataRiverProps.put(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, env.getProperty("fas1.schema.registry.url"));
return new DefaultKafkaConsumerFactory<>(dataRiverProps);
}
@KafkaListener(topics = "#{'${" + PROP_KAFKA_FAS_TOPICS + "}'.split(',')}", containerFactory = "fasKafkaListenerContainerFactoryFirst")
public void consumeAvroFirst(List<Message<GenericData.Record>> list) {
consumeJsonMessageBatch(convertAvroToJsonBatch(list), KAFKA_CONSUMER_FAS_1);
}
我想知道是否有任何遗漏的配置可以在这种情况下帮助生成异常(或警告),并将其写入错误日志中,以便我可以轻松地进行监视。谢谢!