由于项目业务需要,在之前的Kafka Consumer集群的自动提交设置为手动提交,先介绍一下怎么设置为手动提交。
设置手动提交
consumer
@Component
public class KafkaConsumer {
@Autowired
private CustomConfig customConfig;
@Autowired
private StatsDClient statsDClient;
@Value("${spring.kafka.bootstrap-servers}")
private String kafkaBootstrapServer;
@Value("${spring.kafka.sfc-bootstrap-servers}")
private String kafkaSfcServer;
@Value("${spring.kafka.consumer.group-id}")
private String kafkaGroupId;
@Autowired
private GPSKafkaConfig gpsKafkaConfig;
@Value("${spring.kafka.consumer.enable-auto-commit}")
private Boolean autoCommit;
@Value("${spring.kafka.consumer.auto-commit-interval}")
private Integer autoCommitMs;
@Value("${spring.kafka.listener.ack-count}")
private Integer ackCount;
@Value("${spring.kafka.listener.ack-time}")
private Integer ackTime;
private Map<String, Object> initProps() {
Map<String, Object> props = new HashMap<>();
// kafka的ip地址
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaBootstrapServer);
props.put(ConsumerConfig.GROUP_ID_CONFIG, kafkaGroupId);
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, autoCommit);
props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, autoCommitMs);
props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, gpsKafkaConfig.getSessionTimeoutMs());
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, gpsKafkaConfig.getMaxPollIntervalMs());
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, gpsKafkaConfig.getMaxPollRecords());
props.put(ConsumerConfig.FETCH_MIN_BYTES_CONFIG, gpsKafkaConfig.getFetchMinBytes());
props.put(ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG, gpsKafkaConfig.getFetchMaxWaitMs());
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
props.

探讨Kafka消费者集群从自动提交改为手动提交后遇到的问题及解决方案,包括max.poll.interval.ms参数调整、分区拉取阈值设定及消息处理优化。
最低0.47元/天 解锁文章
1600

被折叠的 条评论
为什么被折叠?



