首页 > 解决方案 > 如何配置 Kafka 消费者只处理一次消息?

问题描述

Kafka 消费者是否有任何配置可以只读取一次传入消息?我希望我的消息按顺序排列,并且应该只阅读一次。

标签: apache-kafka

解决方案


从 0.11 版本开始,Kafka 可以通过将 processing.guarantee 属性设置为 exact_once 来配置保证只保证一次。

这是使用 Kafka 的 Stream API 设置属性的代码片段。希望能帮助到你。

import org.apache.kafka.streams.kstream.KStreamBuilder;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsConfig;
import java.util.Properties;

Properties config = new Properties();
config.put(StreamsConfig.PROCESSING_GUARANTEE_CONFIG, StreamsConfig.EXACTLY_ONCE);

KStreamBuilder builder = new KStreamBuilder();
KafkaStreams streams = new KafkaStreams(builder, config);
streams.start();

参考:https ://kafka.apache.org/documentation/streams/ 。


推荐阅读