Kafka架构使用指南,精心总结,全面讲解

在java代码中使用kafka(springboot整合kafka) java代码maven项目实现kafka的连接及生产者、消费者的创建,以及消息的发布和订阅 阅读详情

快速搞定 Kafka 术语

消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。
主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。
生产者:Producer。向主题发布新消息的应用程序。
消费者:Consumer。从主题订阅新消息的应用程序。
消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。
重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

Kafka 体系架构 = M个 producer + N个 broker + K个 consumer + ZK 集群

前不久小编刷到了一份大佬总结的的Kafka使用指南,我看了一下,确实是很强。关于这份Kafka限量笔记,我只能在文章中展示部分的章节内容和核心截图

一、对Kafka的认识

1.Kafka的基本概念

2.安装与配置

3.生产与消费

4.服务端参数配置

二、生产者

1.客户端开发

  • 必要的参数配置
  • 消息的发送
  • 序列化
  • 分区器
  • 生产者拦截器

     

2.原理分析

  • 整体架构
  • 元数据的更新

     

3.重要的生产者参数

三、消费者

1.消费者与****消费组

2.客户端开发

  • 必要的参数配置
  • 订阅主题与分区
  • 反序列化
  • 消息消费
  • 位移提交
  • 控制或关闭消费
  • 指定位移消费
  • 再均衡
  • 消费者拦截器
  • 多线程实现
  • 重要的消费者参数

     

四、主题与分区

1.主题的管理

  • 创建主题
  • 分区副本的分配
  • 查看主题
  • 修改主题
  • 配置管理
  • 主题端参数
  • 删除主题

     

2.初识KafkaAdminCilent

  • 基本使用
  • 主题合法性验证

     

3.分区的管理

  • 优先副本的选举
  • 分区重分配
  • 复制限流
  • 修改副本因子

     

4.如何选择合适的分区数

  • 性能测试工具
  • 分区数越多吞吐量就越高吗
  • 分区数的上限
  • 考量因素

     

五、日志存储

1.文件目录布局
2.日志格式的演变

  • v0版本

  • v1版本

  • 消息压缩

  • 变长字段

  • v2版本
    3.日志索引

  • 偏移量索引

  • 时间戳索引

4.日志清理

  • 日志删除

  • 日志压缩
    5.磁盘存储

  • 页缓存

  • 磁盘I/O流程

  • 零拷贝

     

六、深入服务端

1.协议设计
2.时间轮
3.延时操作
4.控制器
5.参数解密

七、深入客户端

1.分区分配策略
2.消费者协调器和组协调器

3._consumer_offsets剖析

4.事务

八、可靠性探究

1.副本剖析
2.日志同步机制

3.可靠性分析

九、Kafka应用

1.命令行工具
2.Kafka Connect
3.Kafka Mirror Maker

4.Kafka Streams

十、Kafka监控

1.监控数据的来源

2.消费滞后

3.同步失效分区

4.监控指标说明

5.监控模块

十一、高级应用

1.过期时间(TTL)

2.延时队列

3.死信队列和重试队列

4.消息路由

5.消息轨迹

6.消息审计

7.消息代理

8.消息中间件选型

十二、Kafka与Spark的集成

1.Spark的安装及简单应用

2.Spark编程模型

3.Spark的运行结构

4.Spark Streaming简介

5.Kafka与Spark Streaming的整合

6.Spark SQL

[图片上传失败...(image-cab1ce-1664085096091)]

7.Structured Streaming

8.Kafka与Structured Streaming的整合

总结

毋庸置疑,目前 Apache Kafka 是整个消息引擎领域的执牛耳者,也是大数据生态圈中颇为重量级的一员。从最早诞生于 LinkedIn 的“分布式消息系统”,到现在集成了分发、存储和计算的“流式数据平台”,Kafka 广泛应用于国内外大厂,比如 BAT、字节跳动、美团、Netflix、Airbnb、Twitter 等等。

Kafka消息模型与工作原理详解 Kafka作为一个强大的分布式流处理平台,在大数据领域中发挥着重要的作用。它的高吞吐量、可扩展性、持久性等特点,使其能够满足各种复杂的应用场景需求。无论是日志收集、流式处理,还是消息系统和事件驱动架构,Kafka都能提供高效、可靠的解决方案。随着大数据技术的不断发展,Kafka的应用前景也将更加广阔。如果你还没有尝试过Kafka,不妨在自己的项目中使用一下,相信它会给你带来意想不到的惊喜。 阅读详情

相关推荐

Kafka高级知识解析:深入了解Kafka的关键概念与代码示例

在本篇文章中,我们将深入探讨Kafka的一些高级知识点,并提供相应的代码示例,帮助您更好地理解和应用Kafka。当消息被发送到一个主题时,每个消费者组中的消费者将负责处理其中一部分分区的消息。主题是Kafka中消息的分类,可以看作是一个消息队列的名称。生产者将消息发送到特定的主题,而消费者则从主题中读取消息。接着,我们使用一个简单的循环来迭代消费者返回的消息,并打印出消息的内容。偏移量是消息在分区中的唯一标识符,用于表示消息在分区中的位置。Kafka将消息持久化到磁盘上,以确保消息的可靠性。

LmzActionscript的博客 115

Kafka史上最详细原理总结(一)

Kafka史上最详细原理总结 一、概念理解(1)产生背景(2)Kafka的特性(3)Kafka场景应用(4)Kafka一些重要设计思想二、消息队列通信的模式(1)点对点模式(2)发布订阅模式三、Kafka的架构原理(1)基础架构与名词解释(2)工作流程分析(1)发送数据(2)保存数据(3)消费数据 一、概念理解 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大

徐小慧_Blog的博客 1万+

【kafka运维】Leader重新选举运维脚本

文章目录kafka-leader-election Leader重新选举More 日常运维 、问题排查 怎么能够少了滴滴开源的 滴滴开源LogiKM一站式Kafka监控与管控平台 kafka-leader-election Leader重新选举 1 指定Topic指定分区用重新PREFERRED:优先副本策略 进行Leader重选举 > sh bin/kafka-leader-election.sh --bootstrap-server xxxx:9090 --topic test_create

石臻说AI(szzdzhp001) 【原名 石臻臻的杂货铺】 5679

Kafka!(多图+深入)原理详解

一、kafka概述 1.1、定义 Kakfa是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据的实时处理领域 1.2、消息队列 1.2.1、传统的消息队列&新式的消息队列的模式 上面是传统的消息队列,比如一个用户要注册信息,当用户信息写入数据库后,后面还有一些其他流程,比如发送短信,则需要等这些流程处理完成后,在返回给用户 而新式的队...

ytp552200ytp的博客 1万+

Kafka在大数据领域的实时数据同步方案

在大数据时代,企业面临着海量数据实时同步的严峻挑战。传统批处理方式已无法满足业务对实时性的要求,而Apache Kafka作为分布式流处理平台,已成为解决这一问题的行业标准。系统阐述Kafka在实时数据同步中的核心机制提供从理论到实践的完整技术路线分析典型应用场景和性能优化策略探讨未来发展趋势和技术演进方向本文覆盖范围包括Kafka核心概念、架构设计、同步方案比较、实战案例以及运维最佳实践,但不涉及Kafka集群部署和基础配置的详细步骤。

架构师的AI之路,分享AI应用开发架构的学习与实践。 712

准静态电磁场

叠加法 缺点:对于连续分布的电荷,叠加法的计算比较困难 虚位移法 概念 广义坐标:确实系统中导体形状、尺寸与位置的一组独立几何量。 广义力:企图改变某一广义坐标的力。 功:广义力乘上由它引起的广义坐标的改变量。 公式 ...

qq_35912930的博客 1860

Kafka面试精讲 Day 1:Kafka核心概念与分布式架构

今日核心知识点回顾掌握了Kafka的六大核心概念:Broker、Topic、Partition、Producer、Consumer、Consumer Group。理解了其分布式架构原理,包括Leader/Follower机制、ISR、Rebalance等。学会了使用Java编写Producer和Consumer,并掌握关键配置参数。解析了3个高频面试题,涵盖性能、高可用、消费模型。通过两个生产案例了解了实际部署中的最佳实践。面试官喜欢的回答要点。

在未来等你的专栏 1066

STM32CubeMX——循迹传感器TCRT5000的使用

前言 人生如逆旅,我亦是行人。 ————苏轼《临江仙·送钱穆父》 一、介绍 TCRT5000描述:(带有晶体管输出的反射光学传感器) TCRT5000是一种反射式光学传感器,它包括一个红外发射器和一个3.5mm引线封装的光电晶体管,可阻挡可见光。还具有1mA 典型被测输出电流,2.5mm峰值工作距离,可应用传感与仪表,工业等行业。 TCRT5000具有紧凑的结构,其中发射光源和探测器布置在同一方向,通过使用来自物体的反射红外光束来感知物体的存在。工作波长为950毫米,探测器由光电晶体管组成

W_Oilpicture的博客 1万+

原理实践,全面讲解Logstash+Kibana+kafka

Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。而在官网,对于Logstash的介绍更是完整,我这里就展示一下官网的介绍输入:采集各种样式、大小和来源的数据过滤器:实时解析和转换数据输出:选择你的存储,导出你的数据而在官网的介绍中,最让我兴奋的就是可扩展性,Logstash 采用可插拔框架,拥有 200 多个插件。

lt_xiaodou的博客 3704

STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)

薄膜压力传感器采集压力数据

XiaoCaiDaYong的博客 3万+

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2484

kafka配置

在kafka的核心思路中,不需要在内存里缓存数据,因为操作系统的文件缓存已经足够完善和强大,只要不做随机写,顺序读写的性能是非常高效的。kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除,只要磁盘没有限制并且不出现损失,kafka可以存储相当长时间的消息。 Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模

artemisecho的专栏 1896

AUTOSAR—TM模块介绍及使用概要

根据所要测量的场景不同,有1us16bit、1us24bit、1us32bit、100us32bit四种类型可选;TM模块在服务层,提供一些基于时间的服务功能,如测量CPU和任务的负载,周期执行一些回调函数。2、对于需要在不同时间执行不同逻辑的周期任务中,可以搭建时间状态机:参考Tm用户手册;定时器复位、获取时间宽度、定时器转换、定时器同步、繁忙等待。偏移定时器实例的参考时间,直接将定时器数值进行偏移;以1us16bit定时器类型为例,讲几个常用函数。同步两个定时器,把源定时器时间值给到目的定时器。

qq_42479987的博客 605

Kafka高频面试题22连问

这个月我每天会分享一个技术栈的高频面试题,而这些面试题都是取自于我五月份时整理的一些面试文档,希望对最近有面试或者有跳槽打算的同学有所帮助,需要这些文档的同学转发本文后私信【........................

l688899886的博客 444

TOGAF9.2/10 认证基础知识点概览表

(考点解析:业务场景是一种重要的技术,可以在企业架构的各个阶段使用,主要是架构愿景和业务架构,但如果需要,也可以在其他架构域中使用,以直接从业务的高级需求中派生架构的特征。“哪里”可以看作是对相关企业的界定、“为什么”可以被视为组织环境中的关键驱动因素和要素、“谁”是指确定发起人利益相关者和受业务指令影响的其他主要利益相关者,以创建企业架构,并确定他们来自企业的需求和优先级、他们与企业的关系以及彼此之间所需的工作行为。它是业务驱动和业务主导的,它结 合了所有业务线的必要努力,以实现所需的能力。

2302_81497763的博客 2076

perftest实战:从零到一,精准评估RDMA网络性能

想象一下,两台服务器传输数据就像在同一个主板上交换内存,这种零拷贝、低延迟的特性,正是高性能计算、分布式存储等场景梦寐以求的。对于云环境用户,主流云厂商现在都提供RDMA实例(比如AWS的EFA、阿里云的eRDMA)。但要注意,不同机型支持的RDMA协议版本可能不同,这会直接影响测试结果的上限值。记得记录每次测试的BW average值,绘制成曲线图后,你可能会发现类似"阶梯状"的性能变化,这通常与网卡的DMA引擎设计有关。在云环境中,由于虚拟化层的影响,延迟会比裸金属高20-30%。

weixin_28700411的博客 212

从零开始:手把手教你构建Kafka Docker镜像全流程

你是否曾经为配置Kafka环境而头疼不已?复杂的依赖关系、版本兼容性问题常常让人望而却步。今天,我们将一起探索如何通过Docker技术,轻松构建一个可移植、易部署的Kafka运行环境。 ## 为什么选择Docker化Kafka? 想象一下,你正在开发一个需要消息队列的微服务项目。传统的Kafka安装方式需要你手动下载、配置、启动,整个过程繁琐且容易出错。而通过Docker,你可以: - **

gitblog_00633的博客 913

双像素传感器的AI计算摄影实战:单目深度估计与图像去模糊的融合创新

本文介绍了双像素传感器技术在计算机视觉中的应用,包括深度估计、图像去模糊和图像重建等任务。双像素传感器通过两个子单元捕捉视差信息,使摄像头能够分析场景的三维结构和运动轨迹。文章以图像去模糊为例,详细展示了从数据准备到模型训练的完整流程,包括构建自定义数据集、设计双像素特征提取模块、训练去模糊模型及推理测试。通过模拟双像素的"双视角"信息融合,该AI算法能有效恢复模糊图像的清晰细节。

know_F0727的博客 256

Kafka消息队列:生产者消费者模式深度解析

Kafka消息队列:生产者消费者模式深度解析 本文深入解析了Apache Kafka消息队列的生产者消费者模式,详细探讨了其架构设计、消息模型、副本机制以及性能优化策略。文章从Kafka的核心架构组件开始,包括Broker集群、主题与分区机制,重点分析了副本与ISR同步机制如何保障数据可靠性。随后详细介绍了生产者的消息发送流程、分区策略、配置优化方法,以及消费者组的群组协调、分区平衡机制和再均衡策...

gitblog_01139的博客 1084

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

再见了kafka2.0时代,去掉了zk的kafka3.0才是时代新王!

项目初期,对于消息队列,你会选择Kafka、ActiveMQ还是RabbitMQ?对于这个问题,反向来看,估计很少有人会选择Kafka。而kafka3.0的诞生彻底扭转了战局!虽然凭借着高...

朱小厮的博客 5127

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

有没有好的Kafka学习视频?从入门到精通的全面指南

更重要的是,CDA认证本身就是一个含金量极高的证书,获得该认证意味着你在求职市场上具有更强的竞争力。主讲人是该书的作者之一,他凭借多年的研究经验和深厚的学术背景,将晦涩难懂的概念讲解得通俗易懂。希望通过本文的介绍,你能找到适合自己学习节奏的好视频,开启一段精彩的Kafka之旅。因此,在选择视频时,我们不仅要关注视频的质量,还要结合自身的学习习惯和目标,找到最适合自己的学习方式。因此,一个优质的Kafka学习视频应该保持较高的更新频率,及时反映最新的技术动态,使学员始终站在技术前沿。

cda2024的博客 1156

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

kafka与spark应用

kafka主要是用来做日志收集,可以收集用户的流量,点击行为,kafka目前版本是1.0的,其0.9的版本坑特别多,推荐大家使用0.8.2.1版本,正是spark1.6.2集成的kafka版本,非常稳定。以下是本人录制的spark与kafka做实时流计算的视频课程。 1、spark与kafka的介绍 2、spark的集群安装 3、Spark RDD函数讲解与实战分析 4、Spark 的java操作...

iteye_1882的博客 217

Redis、Kafka 和 Pulsar 消息队列对比

导语 |市面上有非常多的消息中间件,rabbitMQ、kafka、rocketMQ、pulsar、 redis等等,多得令人眼花缭乱。它们到底有什么异同,你应该选哪个?本文尝试通过技术演...

http://www.54tianzhisheng.cn/ 349

再见,Kafka!RocketMQ已成气候!

你知道吗?在消息中间件的编年史上,RocketMQ可谓独当一面!作为Apache 顶级项目(TLP),Apache RocketMQ是国内首个非 Hadoop 生态体系的顶级项目,开源...

Java知音 176

大数据领域Kafka的性能调优实战案例

Kafka性能调优是一门结合了艺术和科学的技术。通过本文的系统学习,你应该已经掌握了从基础参数调整到高级架构优化的全方位技能。记住,没有一劳永逸的"最佳配置",只有最适合当前业务场景的"最优配置"。现在,是时候将这些知识应用到你的实际项目中去了。从监控开始,识别瓶颈,小步迭代,持续优化。祝你调优顺利!

架构师的AI之路,分享AI应用开发架构的学习与实践。 1132
上一篇: 20W字详细总结Java并发基础知识
下一篇: SpringCloud Fegin CircuitBreaker (原hystrix) 熔断失效原因
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值