随笔分类 -  Kafka

Kafka
摘要:1.概述最近和一些同学交流的时候反馈说,在面试Kafka时,被问到Kafka组件组成部分、API使用、Consumer和Producer原理及作用等问题都能详细作答。但是,问到一个平时不注意的问题,就是Kafka的幂等性,被卡主了。那么,今天笔者就为大家来剖析一下Kafka的幂等性原理及实现。2.内 阅读全文
posted @ 2022-04-15 17:08 郭慕荣 阅读(516) 评论(0) 推荐(0)
摘要:在了解 Kafka的事务之前,先说一下 Kafka中幂等和事务(Kafka 0.11.0.0版本引入的两个特性)以此来实现 Exactly once(精确一次)了解更多链接。幂等:生产者在进行重试的时候有可能会重复写入消息,而使用 Kafka的幂等性功能之后就可以避免这种情况。生产者事务相关配置开启 阅读全文
posted @ 2022-04-13 21:40 郭慕荣 阅读(2985) 评论(0) 推荐(0)
摘要:// 创建topic./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic atguigu1 --partitions 2 --replication-factor 2 // 查看topic./kafka-topics 阅读全文
posted @ 2022-03-20 11:26 郭慕荣 阅读(270) 评论(0) 推荐(0)
摘要:总结:消费者配置,以及消费者消费流程比较麻烦,这个需要好好的理解消化 阅读全文
posted @ 2022-03-19 21:53 郭慕荣 阅读(142) 评论(0) 推荐(0)
摘要:3.3 增加分区 详见,尚硅谷大数据技术之 Kafka3.0.01)修改分区数(注意:分区数只能增加,不能减少) 3.7 自动创建主题如果 broker 端配置参数 auto.create.topics.enable 设置为 true(默认值是 true),那么当生 产者向一个未创建的主题发送消息时 阅读全文
posted @ 2022-03-19 17:34 郭慕荣 阅读(157) 评论(0) 推荐(0)
摘要:总结:上述是发送者调优的总结, 阅读全文
posted @ 2022-03-19 17:23 郭慕荣 阅读(152) 评论(0) 推荐(0)
摘要:1.4 内存选择Kafka 内存组成:堆内存 + 页缓存 1)Kafka 堆内存建议每个节点:10g ~ 15g 2)页缓存:页缓存是 Linux 系统服务器的内存。我们只需要保证 1 个 segment(1g)中 25%的数据在内存中就好。每个节点页缓存大小 =(分区数 * 1g * 25%)/ 阅读全文
posted @ 2022-03-19 17:07 郭慕荣 阅读(261) 评论(0) 推荐(0)
摘要:控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一个 Broker 成为控制器,行使其管理和协调的 阅读全文
posted @ 2022-03-19 10:51 郭慕荣 阅读(394) 评论(0) 推荐(0)
摘要:1.下载链接:http://download.kafka-eagle.org/1.1 输入 这条命令行【/usr/libexec/java_home -V】查看默认的 jdk 下载地址注意:命令行终端是区分大小写的(-v 是不对的,必须是大写 -V) 2.配置环境变量,首先也要配置java的环境变量 阅读全文
posted @ 2022-03-18 16:08 郭慕荣 阅读(487) 评论(0) 推荐(0)
摘要:Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。topic存储结构见下图: 由于生产者生产的消息会不断追加到 log 文件末尾,为防止 log 文件过大导致数据定位效率低下,Kafka 采取了分片和索引机制,将每个partition分为多个seg 阅读全文
posted @ 2022-03-18 11:17 郭慕荣 阅读(557) 评论(0) 推荐(0)
摘要:总结: 阅读全文
posted @ 2022-03-18 10:56 郭慕荣 阅读(213) 评论(0) 推荐(0)
摘要:总结: 阅读全文
posted @ 2022-03-18 10:48 郭慕荣 阅读(146) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-03-17 19:11 郭慕荣 阅读(193) 评论(0) 推荐(0)
摘要:虽然自动提交offset十分简单便利,但由于其是基于时间提交的,开发人员难以把握offset提交的时机。因 此Kafka还提供了手动提交offset的API。手动提交offset的方法有两种:分别是commitSync(同步提交)和commitAsync(异步提交)。两者的相 同点是,都会将本次提交 阅读全文
posted @ 2022-03-17 17:48 郭慕荣 阅读(1626) 评论(0) 推荐(0)
摘要:总结: 阅读全文
posted @ 2022-03-17 17:43 郭慕荣 阅读(95) 评论(0) 推荐(0)
摘要:__consumer_offsets 主题里面采用 key 和 value 的方式存储数据。key 是 group.id+topic+ 分区号,value 就是当前 offset 的值。每隔一段时间,kafka 内部会对这个 topic 进行 compact,也就是每个 group.id+topic 阅读全文
posted @ 2022-03-17 17:02 郭慕荣 阅读(131) 评论(0) 推荐(0)
摘要:总结: 阅读全文
posted @ 2022-03-16 22:13 郭慕荣 阅读(165) 评论(0) 推荐(0)
摘要:总结: 阅读全文
posted @ 2022-03-16 16:26 郭慕荣 阅读(464) 评论(0) 推荐(0)
摘要:1、coordinator:辅助实现消费者组的初始化和分区的分配。coordinator节点选择 = groupid的hashcode值 % 50( __consumer_offsets的分区数量)例如: groupid的hashcode值 = 1,1% 50 = 1,那么__consumer_of 阅读全文
posted @ 2022-03-16 16:19 郭慕荣 阅读(158) 评论(0) 推荐(0)
摘要:1)Kafka 本身是分布式集群,可以采用分区技术,并行度高 2)读数据采用稀疏索引,可以快速定位要消费的数据 3)顺序写磁盘:Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端, 为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机 阅读全文
posted @ 2022-03-16 10:26 郭慕荣 阅读(260) 评论(0) 推荐(0)