Kafka学习

本文详细介绍了Kafka作为一个分布式数据流平台的角色,包括其作为消息队列的功能、数据存储与容错机制,以及低延迟特性。讨论了Kafka在实时流处理中的应用,并深入讲解了Kafka的核心概念,如生产者、主题、分区和副本。内容涵盖创建与管理主题、副本机制、数据消费、Kafka的索引和消息处理语义,为理解Kafka的运作机制提供了全面的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Kafka介绍
Kafak是一个分布式数据流平台,可以从如下几个层面来理解:
1.我们可以向Kafka发布数据以及从Kafka订阅数据,即我们可以将kafka看做一个消息队列。所起到的作用:缓冲(消峰限流),实现生产与消费的解耦。
2.Kafka可以存储数据,并提供容错机制,即数据丢失可以进行恢复
在这里插入图片描述

3.当数据到达Kafka之后,可以马上的被消费处理,即Kafka的延迟很低
综合,Kafka具备以上这三个明显的特点,根据Kafka的这些特点,Kafka的适用场景是:搭建实时流平台的中间件
在实际工作中,对数据的处理方式有两种:
①离线批处理
②实时流处理
在这里插入图片描述
二.Kafka核心概念及操作
在这里插入图片描述
知识点:
1.producer生产者,可以是一个测试线程,也可以是某种技术框架(比如flume)
2.producer向kafka生产数据,必须指定哪个主题去生产数据
3.主题topic。主题是由用户(程序员)自己来创建的
4.创建主题的命令:
sh kafka-topics.sh --create --zookeeper zk01:2181 --replication-factor 3 --partitions 3 --topic cnbook
5.产看kafka集群的所有主题
sh kafka-topics.sh --list --zookeeper zk01:2181
6.创建一个主题,需要指定:
①主题名
②主题分区数量
③分区的副本数量
7.主题的分区,本质上就是一个分区文件目录
分区目录的命名规则:主题名-分区编号(分区编号从0开始)
思考:kafka主题引入分区机制,有什么用?
可以分布式的对一个主题数据进行存储和管理。
补充:主题的分区数量可以远大于kafka broker的服务器数量。kafka底层尽可能确保分区目录的负载均衡。比如:一个主题有10个分区。底层尽可能确保分区目录的负载均衡。比如:一个主题10个分区,3个broker,则分区目录的数量分配:3-3-4
8.启动一个生产者线程。
sh kafka-console-producer.sh --broker–list kafka01:9092,kafka01:9092,kafka01:9092(几台kafka就写几台) --topic cnbook
9.producer向kafka指定的主题生产数据,数据最终是存到了分区目录下的log文件中,此外kafka底层会确保每个分区目录的数据达到负载均衡的效果(轮询发送给每个分区目录)
10.Kafka支持数据的容错机制,即分区数据丢失后,可以恢复,通过副本沉余机制来实现的。即

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值