kafka专题
文章平均质量分 93
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka 基础教程 — Streams流处理示例
Kafka一直被认为是一个强大的消息中间件,它实现了高吞吐、高可用和低延时的消息传输能力,这让它成为流式处理系统中完美的数据来源。目前通用的一些流式处理框架如Apache Spark、Apache Flink、Apache Storm等都可以将Kafka作为可靠的数据来源。但遗憾的是,在0.l0.x版本之前,Kafka还并不具备任何数据处理的能力,但在此之后,Kafka Streams应运而生。Kafka Streams是一个用于处理和分析数据的客户端库。原创 2025-03-03 07:49:26 · 894 阅读 · 0 评论 -
Kafka 基础教程 — Spring Boot 集成 Kafka 详解
我们知道,kafka中每个topic被划分为多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?这就是所谓的分区策略,Kafka 为我们提供了默认的分区策略,同时它也支持自定义分区策略。若发送消息时指定了分区(即自定义分区策略),则直接将消息append到指定分区;若发送消息时未指定 patition,但指定了 key(kafka允许为每条消息设置一个key),则对key值进行hash计算,根据计算结果路由到指定分区,这种情况下可以保证同一个 Key 的所有消息都进入到相同的分区;原创 2025-03-03 07:46:14 · 1272 阅读 · 0 评论 -
Kafka 基础教程 — __consumer_offsets详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-03-03 07:45:08 · 1058 阅读 · 0 评论 -
Kafka 基础教程 — 再均衡原理详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-03-03 07:44:19 · 1361 阅读 · 0 评论 -
Kafka 基础教程 — 时间轮
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-03-03 07:43:35 · 891 阅读 · 0 评论 -
Kafka 基础教程 — 指定位移消费
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-03-03 07:42:51 · 1123 阅读 · 0 评论 -
Kafka 基础教程 — 位移提交、控制或关闭消费
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-03-03 07:41:54 · 823 阅读 · 0 评论 -
Kafka 基础教程 — Kafka Connect详解
Kafka Connect是一个高伸缩性、高可靠性的数据集成工具,用于在Apache Kafka与其他系统间进行数据搬运以及执行ETL操作,比如Kafka Connect能够将文件系统中某些文件的内容全部灌入Kafka topic中或者是把Kafka topic中的消息导出到外部的数据库系统,如图所示。如图所示,Kafka Connect主要由source connector和sink connector组成。原创 2025-02-28 11:42:26 · 1533 阅读 · 0 评论 -
Kafka 基础教程 — MirrorMaker详解
对于Kafka企业级用户而言,一个常见的痛点就是跨机房或跨数据中心(data center,DC)的数据传输。大型企业通常在多个数据中心部署Kafka集群。.这里的数据中心可能是企业拥有的自建机房,也可能是公有云厂商的不同机房。在多个机房部署Kafk集群的优势如下。实现灾备。较近的地理位置可缩短延时以及用户响应时间。实现负载均衡,即每个数据中心上的集群可能只保存部分数据集合。区别隔离不同优先级的数据处理。原创 2025-02-28 10:53:49 · 1104 阅读 · 0 评论 -
Kafka 基础教程 — AdminClient API详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-28 10:53:08 · 1168 阅读 · 0 评论 -
Kafka 基础教程 — consumer端设计
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-28 10:52:22 · 619 阅读 · 0 评论 -
Kafka 基础教程 — producer端设计
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-28 10:51:34 · 881 阅读 · 0 评论 -
Kafka 基础教程 — Controller设计详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-27 08:37:14 · 933 阅读 · 0 评论 -
Kafka 基础教程 — 副本与ISR设计
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-27 08:33:41 · 1178 阅读 · 0 评论 -
Kafka 基础教程 — 多线程Consumer实例
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-27 08:32:54 · 742 阅读 · 0 评论 -
Kafka 基础教程 — Rebalance重平衡
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-27 08:31:55 · 1098 阅读 · 0 评论 -
Kafka 基础教程 — 无消息丢失配置
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-27 08:30:42 · 957 阅读 · 0 评论 -
Kafka 基础教程 — producer拦截器
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-26 07:52:42 · 1074 阅读 · 0 评论 -
Kafka 基础教程 — 两种集群搭建详解
Kafka是一个能够支持高并发以及流式消息处理的消息中间件,并且Kafka天生就是支持集群的,今天就主要来介绍一下如何搭建Kafka集群。Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式(即无Zookeeper)模式这两种模式搭建集群,这两种模式各有各的好处,今天就来分别介绍一下这两种方式这个配置项用于指定Kafka服务器监听客户端连接的地址和端口,当 Kafka 服务器启动时,它将监听listeners配置项中指定的地址和端口,等待客户端的连接请求。一般情况下这个配置以或者。原创 2025-02-26 07:51:56 · 918 阅读 · 0 评论 -
Kafka 基础教程 — 流式处理相关概念
数据流(也被称为“事件流”或“流数据”)。首先,数据流是无边界数据 集的抽象表示。无边界意味着无限和持续增长。无边界数据集之所以是无限的,是因为随 着时间的推移,新的记录会不断加入进来。这个简单的模型(事件流)可以表示很多业务活动,比如信用卡交易、股票交易、包裹 递送、流经交换机的网络事件、制造商设备传感器发出的事件、发送出去的邮件、游戏 里物体的移动,等等。这个清单是无穷无尽的,因为几乎每一件事情都可以被看成事件 的序列。除了没有边界外,事件流模型还有其他一些属性。事件流是有序的。原创 2025-02-26 07:50:39 · 992 阅读 · 0 评论 -
Kafka 基础教程 — 管理Kafka(命令行工具)详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-26 07:49:50 · 1301 阅读 · 0 评论 -
Kafka 基础教程 — 可靠的数据传递
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-26 07:47:54 · 801 阅读 · 0 评论 -
Kafka 基础教程 — 内部机制详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-26 07:46:48 · 1135 阅读 · 0 评论 -
Kafka 基础教程 — 消费者API详解
Override//不做任何配置@Overrideint id;try {@Override//不需要关闭任何资源。原创 2025-02-25 07:43:38 · 1113 阅读 · 0 评论 -
Kafka 基础教程 — 生产者API详解
如果发送到 Kafka 的对象不是简单的字符串或整型,那么可以使用序列化框架来创建消息 记录,如 Avro、Thrift 或 Protobuf,或者使用自定义序列化器。我们强烈建议使用通用的 序列化框架。//用来配置当前类//不做任何配置/*** 执行序列化操作* @return* Customer对象被序列化成:* 表示customerID的4字节整数* 表示customerName长度的4字节整数(如果customerName为空,则长度为0)原创 2025-02-25 07:42:26 · 936 阅读 · 0 评论 -
Kafka 基础教程 — 核心API简介
Producer API :Producer API 用于将流数据发送至一个或多个Kafka主题中。Consumer API :Consumer API 用于应用程序在订阅一个或多个主题后,对他们所产生的数据流进行处理。Streams API :Streams API 使用来自一个或多个主题的输入流,并生成到一个或多个输出主题的输出流,提供一种有效的数据流处理方式。原创 2025-02-25 07:41:05 · 348 阅读 · 0 评论 -
Kafka 基础教程 — 配置文件详解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-25 07:40:21 · 1400 阅读 · 0 评论 -
Kafka 基础教程 — Mac搭建kafka环境
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-25 07:38:42 · 635 阅读 · 0 评论 -
Kafka 基础教程 — 概述
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。原创 2025-02-25 07:37:22 · 744 阅读 · 0 评论 -
Kafka源码分析(二八)——Consumer:GroupCoordinator协调器
本章,我对GroupCoordinator协调器的底层原理进行了讲解。Kafka Consumer的核心无非就是三块:分区分配、offset管理、底层通信。分区分配的核心就是GroupCoordinator,底层通信的原理和Producer类似,offset管理主要涉及HW、LEO。至此,整个Kafka源码分析系列我就讲完了,剩余的很多边边角角的内容和细节读者可以自己去研读源码。原创 2024-06-12 16:30:26 · 908 阅读 · 0 评论 -
Kafka源码分析(二七)——Broker:集群管理——分区重分配
本章,我对Kafka的分区重分配流程和底层实现原理进行了讲解,分区重分配本质在于数据复制,先增加新的副本,然后进行数据同步,最后删除旧的副本来达到最终目的。数据复制会占用额外的资源,所以,分区重分配一定要在低峰值时期执行。另外,可以减小重分配的粒度,以小批次的方式来操作是一种可行的解决思路。但是,如果集群中某个分区的流量即使在低峰时期还是特别大,那么就需要采取限流机制,Kafka默认提供了两种复制限流的方式:通过脚本和实现。我就不赘述了,读者可以找相关资料了解。原创 2024-06-12 16:27:26 · 1375 阅读 · 0 评论 -
Kafka源码分析(二六)——Broker:集群管理——Topic创建
本章,我对Topic创建的整体流程和底层原理进行了讲解,Controller会监听新Topic的创建,同时对分区副本进行管理,向新的元数据信息发送给集群中的其它Broker。原创 2024-06-12 16:25:23 · 1408 阅读 · 0 评论 -
Kafka源码分析(二五)——Broker:集群管理——KafkaController
本章,我对Kafka的Broker集群的选举流程进行了讲解,Kafka Server服务启动后,每个Broker内部都包含一个KafkaController组件,选举流程的本质就是通过该组件往Zookeeper写入节点,首先写入成功的就是Leader,即Controller。Controller负责管理整个Broker集群,包含Broker的上下线感知,分区副本的分配、选举,集群元数据的通知更新等等。下一章,我就来讲解。原创 2024-06-12 09:05:13 · 822 阅读 · 0 评论 -
Kafka源码分析(二四)——Broker:副本同步——延迟读写
本章,我对副本同步中的最后一块内容——延迟读写进行了讲解。Kafka就是利用了时间轮机制对这种延迟读写的情况进行处理。原创 2024-06-12 09:02:22 · 1139 阅读 · 0 评论 -
Kafka源码分析(二三)——Broker:副本同步——Leader侧整体流程
Leader侧的消息读取流程;Leader侧的LEO和HW维护;Leader侧的ISR列表维护;原创 2024-06-12 09:00:49 · 859 阅读 · 0 评论 -
Kafka源码分析(二二)——Broker:副本同步——Follower侧整体流程
本章,我站在Follower副本的角度对副本同步的整个流程进行了讲解。Broker启动后,会在创建多个后台线程——,负责副本的同步。ReplicaFetcherThread是按照Broker维度创建的,一批Leader分区在同一个Broker上的Follower分区共用一个ReplicaFetcherThread;ReplicaFetcherThread拉取消息时,本质还是作为Producer发送请求,走的还是Kafka自定义的一套NIO通信框架;Follower拉取到消息后,按照日志子系统。原创 2024-06-11 13:15:50 · 912 阅读 · 0 评论 -
Kafka源码分析(二一)——Broker:日志子系统——索引
本章,我对Kafka中的索引进行了深入讲解。这是 Kafka 所有类型索引的抽象父类,里面的 mmap 变量是实现索引机制的核心,Kakfa采用了内存映射文件实现了索引的写入,极大提升了IO性能;Kafka对二分查找算法进行了改进,将所有索引项分成两个部分:热区(Warm Area)和冷区(Cold Area),然后分别在这两个区域内执行二分查找算法,从而提升页缓存的使用率,避免缺页中断(Page Fault)问题。原创 2024-06-11 10:10:44 · 1100 阅读 · 0 评论 -
Kafka源码分析(二十)——Broker:日志子系统——LogSegment
本章,我对LogSegment这个分段日志对象进行了讲解,我们需要重点关注它的append方法,也就是写日志的方法。LogSegment会判断每写入4KB消息,就写入一个稀疏索引。原创 2024-06-10 18:28:46 · 809 阅读 · 0 评论 -
Kafka源码分析(十九)——Broker:日志子系统——Log
本章,我对Log对象进行了简单的讲解。Log是LogSegment日志段的容器,里面定义了很多管理日志段的操作,我们目前只需要关注它的写日志方法即可。原创 2024-06-10 18:26:12 · 1054 阅读 · 1 评论 -
Kafka源码分析(十八)——Broker:日志子系统——整体架构
本章,我带大家回顾了Kafka的日志结构,然后对Log Subsystem的核心组件进行了整体分析,并找到了日志写入的入口,分析了日志写入的整体流程。下一章开始,我将逐一分析日志写入过程中涉及的各个核心组件。原创 2024-06-10 18:24:17 · 1533 阅读 · 0 评论
分享