我正在使用具有以下配置的spring kafka:
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
environment.getProperty("kafka.url"));
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
StringDeserializer.class);
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
KafkaAvroDeserializer.class);
props.put("specific.avro.reader", true);
props.put("schema.registry.url",
environment.getProperty("schema.registry.url"));
props.put("session.timeout.ms", 120000);
props.put("request.timeout.ms", 300000);
props.put("max.partition.fetch.bytes", "10240");
props.put("max.poll.interval.ms", 120000);
props.put("max.poll.records", 100);
还有
@Bean
public ConcurrentKafkaListenerContainerFactory<String,
List<AlertNotificationPayload>> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String,
List<AlertNotificationPayload>> factory = new
ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
factory.setConcurrency(10);
}
一旦我启动服务器,使用者就开始使用消息,但是过了一会儿,一些分区被暂停,并且几乎在9-10分钟之内没有恢复。使用者线程中的处理时间以毫秒为单位,并且具有单独的线程进行处理。我尝试了多种配置组合,但是没有用。
我还尝试使用设置 factory.getContainerProperties()。setPauseEnabled(false); 停止暂停/继续操作,但重新平衡会在一段时间后开始发生,消费者早晚丧命,并且一段时间后,消费群体中没有消费者。
我正在使用以下版本:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.1.3.RELEASE</version> //tried latest one as well
</dependency>
<dependency>
<groupId>io.confluent.maven</groupId>
<artifactId>kafka-connect-quickstart</artifactId>
<version>0.10.0.0</version>
</dependency>
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<version>3.2.0</version>
</dependency>
请帮助。