🌈hello,你好鸭,我是Ethan,西安电子科技大学大三在读,很高兴你能来阅读。
✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。
🏃人生之义,在于追求,不在成败,勤通大道。加油呀!
🔥个人主页:Ethan Yankang
🔥推荐:史上最强八股文||一分钟看完我的几百篇博客
🔥温馨提示:划到文末发现专栏彩蛋 点击这里直接传送
🔥本篇概览:详细讲解了kafka系列9——第3章1——消费者。🌈⭕🔥
【计算机领域一切迷惑的源头都是基本概念的模糊,算法除外】
🔥 微服务全集
🔥 kafka全集
🔥 前一篇章
🌈引出
Apache的kafka是一个分布式的消息发布订阅中间件。具有高吞吐、可扩展和容错性等特点。主要用于处理大规模的流式数据。
本博客从各个方面详细讲解了kafka的机制,并实际上手使用之,好好学完定会习得大功。(bushi,上一次面试就噶在kafka上了,好好对待之。)
3.1 概念入门
3.1.1 消费者和消费组
【支持消息重读】
3.2 消息接收
3.2.1必要参数设置
public static Properties initConfig() {
Properties props = new Properties();
// 设置 key 的反序列化器。Kafka 从 broker 获取的消息是字节数组,因此需要将字节数组反序列化为 Java 对象。
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
// 设置 value 的反序列化器。与 key 的反序列化器相同,将消息的 value 部分反序列化。
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
// 设置 Kafka 集群的 broker 地址,用于连接 Kafka 集群。这个配置项非常重要,必须设置。
props.put("bootstrap.servers", brokerList);
// 设置消费者所属的消费组 ID。消费者必须属于某一个消费组,通过消费组管理消息的消费情况。
props.put("group.id", groupId);
// 设置消费者客户端 ID。用于标识消费者客户端的唯一性,便于 Kafka 集群追踪和管理。
props.put("client.id", "consumer.client.id.demo");
return props;
}
3.2.2 订阅主题和分区
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList(topic));
consumer.subscribe(Pattern.compile("heima*"));
// 指定订阅的分区
consumer.assign(Arrays.asList(new TopicPartition("topic0701", 0)));
3.2.3 反序列化
// 与KafkaProducer中设置保持一致
props.put("key.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
3.2.4 位移提交
重复消费
消息丢失
同步提交
自动提交
异步提交
手动提交有一个缺点,那就是当发起提交调用时应用会阻塞。当然我们可以减少手动提交的频率,但这个会增加消息重复的概率(和自动提交一样)。另外一个解决办法是,使用异步提交的API。
3.2.5 指定位移消费
3.2.6 再均衡监听器
3.2.5 消费者拦截器
3.2.6 消费者参数补充
fetch.min.bytes
fetch.max.wait.ms
max.partition.fetch.bytes
max.poll.records
💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
热门专栏推荐
🌈🌈计算机科学入门系列 关注走一波💕💕
🌈🌈CSAPP深入理解计算机原理 关注走一波💕💕
🌈🌈微服务项目之黑马头条 关注走一波💕💕
🌈🌈redis深度项目之黑马点评 关注走一波💕💕
🌈🌈JAVA面试八股文系列专栏 关注走一波💕💕
🌈🌈JAVA基础试题集精讲 关注走一波💕💕
🌈🌈代码随想录精讲200题 关注走一波💕💕
总栏
🌈🌈JAVA基础要夯牢 关注走一波💕💕
🌈🌈JAVA后端技术栈 关注走一波💕💕
🌈🌈JAVA面试八股文 关注走一波💕💕
🌈🌈JAVA项目(含源码深度剖析) 关注走一波💕💕
🌈🌈计算机四件套 关注走一波💕💕
🌈🌈数据结构与算法 关注走一波💕💕
🌈🌈必知必会工具集 关注走一波💕💕
🌈🌈书籍网课笔记汇总 关注走一波💕💕
📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤收藏✅ 评论💬,大佬三连必回哦!thanks!!!
📚愿大家都能学有所得,功不唐捐!