Kafka

Kafka概念

https://kafka.apache.org/

Kafka是一种高吞吐量的分布式发布订阅消息系统,使用 Scala 语言编写。

producer通过网络发送消息到Kafka集群,然后consumer来进行消费,如下图:

服务端(brokers)和客户端(producer、consumer)之间通信通过TCP协议来完成。

broker

Kafka 服务器,负责消息存储和转发。

topic

消息类别,Kafka 按照 topic 来分类消息,发布到Kafka集群的每条消息都需要指定一个topic。

partition

topic 的分区,物理上的概念,一个 topic 可以包含多个 partition,topic 消息保存在各个 partition 上 ,每个partition内部消息是有序的。

在Kafka中,一个分区的数据只能被同一个消费组中的一个消费者消费‌。Kafka的设计保证了消息的顺序性(FIFO),即一个分区内的消息只能被同一个消费组中的一个消费者消费,以确保消息的顺序不被打乱。‌

offset

消息在日志中的位置,可以理解是消息在 partition 上的偏移量,也是代表该消息的唯一序号。

Producer

消息生产者,向Broker发送消息的客户端。

Consumer

消息消费者,从Broker读取消息的客户端。

Consumer Group

消费者分组,每个 Consumer 必须属于一个特定的Consumer Group,一条消息可以被多个不同的Consumer Group消费,但是一个Consumer Group中只能有一个Consumer能够消费该消息。

Zookeeper

保存着集群 broker、topic、partition 等 meta 数据;另外,还负责 broker 故障发现,partition leader 选举,负载均衡等功能。

Kafka消费者组和分区的对应关系

‌同一个消费组‌:

在一个消费组内,每个分区只能被该组中的一个消费者消费。例如,如果一个主题有3个分区,那么在一个消费组内最多可以有3个消费者,每个消费者负责消费一个分区。

‌不同消费组‌:

不同的消费组可以消费同一个分区的消息。例如,一个分区可以被消费组A的消费者消费,同时也可以被消费组B的消费者消费,但不会重复消费。

kafka为什么那么快?

磁盘 顺序读写

顺序IO

零拷贝机制

内存映射文件

零拷贝(避免了在内核空间用户空间之间的拷贝,从而提高了I/O速度)

分区架构和 批量操作

Kafka的集群架构采用了多分区技术,并行度高。生产者发送的消息先发送到一个队列,然后有sender线程批量发送给Kafka集群,这种设计提高了生产者的吞吐量。

PageCache利用 (页缓存技术)

Kafka利用了操作系统本身的pagecache,通过操作系统的pagecache,Kafka的读写操作基本上是基于内存的,读写速度得到了极大的提升。

相关推荐
Devin~Y19 小时前
从内容社区到AI智能客服:Spring Boot + Spring Cloud + Spring AI 全栈实战面试拆解
java·spring boot·redis·elasticsearch·spring cloud·kafka·mybatis
Lumistory1 天前
城市建筑照明的落地与长效运营观察
大数据·数据库·中间件·光照贴图
DLYSB_3 天前
Kafka 消费倾斜死锁与 Partition 掉队:我用 Rust 写了个“数据管道物理哨兵”,比 Grafana 报警快了 18 秒
rust·kafka·grafana·报警灯
creator_Li3 天前
Kafka消费者offset提交
kafka
TDengine (老段)3 天前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
apgk14 天前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
liudashuang20174 天前
Kafka Producer 隐藏深坑:Sender 线程自阻塞(自死锁)导致 BufferExhaustedException 完整复盘
java·分布式·kafka·linq
小张同学a.4 天前
ELK企业级日志分析平台3——ES数据备份 & 集群监控 & ELFK+Kafka 架构部署
linux·运维·elk·elasticsearch·架构·kafka·filebeat
笨#小孩4 天前
中间件解析漏洞与编辑器漏洞:Web安全绕过的“捷径”
web安全·中间件·编辑器
富士康质检员张全蛋4 天前
Kafka 的Log-Log Compaction
kafka