apache-kafka - 如何配置 Kafka 消费者只处理一次消息?
问题描述
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/ 。
推荐阅读
- angular - 如何为数组中的每个图像添加复选框并仅选择一个
- apache-spark - 在 Hadoop 表中的同一分区上查询的多个 Spark 会话是否会使查询变慢?
- flutter - 在我的物理设备中运行颤振程序时出现以下错误。我应该怎么做才能纠正它?
- javascript - 如何在 Chrome 扩展程序中添加一个播放音频 onclick 的按钮?
- java - 声明的包“事实”与预期的包“”不匹配
- mysql - 通过“getById & save”更新 JPA 实体没有更新它的更新时间戳列
- python - 从python中的csv查找字符串长度并以字典格式追加多列
- javascript - 如何通过单击其标签取消选中选中的无线电输入?
- python - 从现金流列表和利率列表计算 NPV 的函数
- react-native - React Native 在获取数据时触发重新渲染