首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
Kafka根本教学
返回列表
发新帖
Kafka根本教学
[复制链接]
发表于 2026-2-9 17:17:53
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
Kafka根本教学
一:Kafka先容
Kafka是
分布式消息队列
,重要操持用于高吞吐量的数据处理处罚和消息传输,实用于
日志
处理处罚、实时数据管道等场景。
Kafka作为实时数仓架构的焦点组件
,用于网络、缓存和分发实时数据流,支持复杂的实时数据处理处罚,实时需求分析,实时报表等应用。
二:Kafka根本架构图
根本教学
:
zookeeper
:同一管理kafka集群
(1)生存kafka干系的元数据
(2)负责Kafka集群的团体调和和管理
(3)在Kafka集群中,当某个节点(如Broker或分区向导者Leader)出现故障时,ZooKeeper可以或许帮忙举行故障检测和规复
Producer
:生产者
向kafka发送消息,
通过【轮询写入】方式,使得消息数据匀称分布
,即:传数据给kafka。
Consumer
:斲丧者
从kafka中获取消息(数据)举行斲丧,一样平常有
三种战略可选(订阅模式,正则模式,指定模式)
。
Kafka集群
:
Broker
:一台Kafka
服务器
一样平常是一个Broker【重要由该呆板的核数来决定】,一个集群由多个Broker构成,一个Broker可以容纳多个Topic。
Topic(主题)
:是数据的逻辑
分类
单位,用于管理和构造消息流,Topic
类似于mysql
数据库
中的库
。Topic分为多个partition存放于差别的kafka
服务器
上。
partition(分区)
:每个Partition(分区)是一个
有序的队列
(分区有序,不能包管全局有序)
Leader
:每个partition(分区)都有一个leader(向导者),负责处理处罚该分区的全部读取和写入数据操纵(生产者和斲丧者都面临leader对象举行操纵)。
Replica
:特殊的Follower。
Follower
:每个partition(分区)含有多个follower(跟随者),重要用于与leader(向导者)同步数据,保持数据的划一性。当leader失效时,会从中选一个follower成为新的leader。
三:Kafka特点
1、多副本机制
1.1.容错性(In-Sync Replicas,同步副本集)
教学
:
在每个partition(分区)内部中,都含有一个
leader(向导者)
和多个
follower(跟随者)
。
此中可将其分为
ISR队列
(此处为三个)和
Followers
两部分。
正常状态(消息数据写入队列):
1、消息数据写到
ISR队列中的每一个节点上(Leader和replica)
,当写入全部的ISR队列后,才可以举行下一个消息的写入。
2、Followers中节点可以同步Leader数据,且并
无时间限定
(时间可长可短)。
Leader失效场景:
当Leader失效时,会在
ISR队列中选取一个作为新的Leader继承工作
,同时会在
Followers中选取一个进入ISR队列中
。
1.2.读写分离
Leader 负责写操纵
I S R 中任何一个 replica 都可以读操纵
2、多分区(MP,multiple partitions)
每个Topic(主题)可以被分别成多个分区(partition),每个分区在物理上可以
存储
在差别的Broker节点上。
重要上风
:
低延时
负载
平衡
:Kafka集群可以在多个Broker节点上匀称地分布分区,使得每个Broker负责处理处罚的分区数目相对平衡【Topic(主题)分区数目最优操持:节点数*物理核数】
方便在集群中集成和扩展
:Kafka提供了丰富的客户端
API
,支持多种编程语言,如Java、Python、Go、Scala等。同时,每个partition通过调解以顺应它所在的呆板(水平扩展),而一个Topic又可以有多个partition构成,因此整个集群可以顺应得当的数据,从而到达扩缩容结果。
3、零拷贝
数据可以直接从磁盘传输到网络接口,克制了传统I/O操纵中的多次内存拷贝和上下文切换,进步数据传输服从。
4、产销解耦
根本教学
:
Kafka作为一种分布式消息中心件。生产者只须要将数据发送到Kafka的特定主题(Topic)中,无需知道数据的详细斲丧者是谁;斲丧者只须要从Kafka订阅特定的主题,并拉取数据举行处理处罚,无需知道数据的泉源是从何而来【生产者 —> Kafka <— 斲丧者】
生产者数目:
分区数
个生产者**【轮询写入】,匀称分布**。
斲丧者数目:
分区数
个斲丧者
一对一读取,并行斲丧
。
=>
分布式最佳结果
:spark处理处罚的算子分区数(spark并行度) = kafka的分区数(有多少个队列)【分区上限重要由"核数"决定】。
四:斲丧者战略(读取数据方式)
Kafka为斲丧者提供了三种范例的订阅斲丧模式:
subscribe(订阅模式)
、
SubscribePattern(正则订阅模式)
、
assign(指定模式)
。
subscribe与SubscribePattern教学
根本认知
:
subscribe(订阅模式)与SubscribePattern(正则订阅模式)原理根本划一。
区别
:
subscribe(订阅模式)实用于【单主题】
,
SubscribePattern(正则订阅模式)实用于【多主题】
。
教学
:
客户端提供groupId和订阅的主题(topic),会先找到这个groupId为123所对应的主题(topic),此中会有记载其offset(偏移量),然后通过这个这个offset(偏移量)继承从test01中举行数据的读取操纵。
assign教学
教学
:
Redis与客户端之间举行数据交互,会将offset(偏移量)
存储
于Redis中。客户端提供topic(主题)给Redis,与offset形成键值对的情势,进而可以从test01中举行数据的读取操纵。
五:Kafka下令教学(shell 控制台处理处罚)
1、查察主题
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --list --bootstrap-server single:9092
复制
代码
2、创建主题
# --topic 主题名称
# --partitions 分区数
# --replication-factor 每个分区的副本数
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --create --topic test01 --partitions 1 --replication-factor 1 --bootstrap-server single:9092
复制
代码
3、查察主题详情
# --topic 主题名称
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --describe --topic test01 --bootstrap-server single:9092
复制
代码
4、创建控制台【生产者】
# --topic 主题名称
# --broker-list single:9092 => 指定主题
kafka-console-producer.sh --broker-list single:9092 --topic test01 < /root/ebs_act_log/transaction_log/part-00001
复制代码
在Kafka客户端工具中
5、创建控制台【斲丧者】
# --bootstrap-server kafka的地址:端口号
# --topic 主题
# --property print.key=true
kafka-console-consumer.sh --bootstrap-server single:9092 --topic test01 --property print.key=true --from-beginning
复制代码
6、删除主题和数据(不能被正在生产或斲丧)
kafka-topics.sh --bootstrap-server single:9092 --delete --topic test01
复制代码
Kafka实战(Scala操纵)
Kafka实战(Scala操纵)
回复
使用道具
举报
返回列表
浏览过的版块
数据仓库与分析
Oracle
前端开发
分布式数据库
公有云
linux
SQL-Server
SAAS
人工智能
南七星之家
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表