kafka是什么?

Kafka 是什么?Apache Kafka 是一款开源的消息引擎系统(也有翻译为消息队列、消息中间件),旨在实现系统间松耦合异步数据传输。

传输消息的模式支持点对点模式和发布-订阅模式。

相关概念:

主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。

分区:Partition。一个有序不变的消息序列,每个主题下可以有多个分区。

消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。

副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者(leader)副本和追随者(follower)副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。

生产者:Producer。向主题发布新消息的应用程序。

消费者:Consumer。从主题订阅新消息的应用程序。

消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。

消费者组:Consumer Group。多个消费者共同组成的一个组,同时消费多个分区以实现高吞吐。

重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

服务器:Kafka集群包含一个或多个服务器,这种服务器被称为broker;

生产者产生发布消息,放入某个topic,消费者订阅1个到多个topic;

一个topic对应多个分区,分区物理分布在broker集群上,每个分区有一个leader分区和0或多个follower分区,其中leader分区可以读写,follower分区只定期拉去leader分区的内容做备份,leader分区挂了follow分区顶上。

每个分区可以存放N个消息,消息位移从0开始,顺序递增;

以图中为例:假定一个主题有3个分区0,1,2,分布在3个broker上,不同生产者都可以往同一topic中发消息,然后消息分别放入不同分区存储; 订阅了该topic的消费者可以读取消息。

相关推荐
__土块__1 天前
Java 大厂一面模拟:从线程本地存储到分库分表路由的连环拷问
kafka·线程池·分库分表·java面试·threadlocal·缓存一致性·大厂一面
面向Google编程1 天前
从零学习Kafka:认证机制
大数据·kafka
却话巴山夜雨时i1 天前
互联网大厂Java面试:从Spring Boot到Kafka的业务场景深度剖析
spring boot·redis·spring cloud·微服务·kafka·prometheus·java面试
qq_297574671 天前
【Kafka系列·进阶第三篇】流处理与数据治理实战:Streams实时计算+Schema校验+多租户管控
分布式·kafka·linq
Rick19931 天前
Kafka 的 ISR 是什么
分布式·kafka
qq_297574672 天前
【Kafka系列·进阶第一篇】生产可靠性实战:死信队列+幂等性+集群扩容+灾备切换
分布式·kafka
请为小H留灯2 天前
Kafka详解及实战案例
分布式·kafka·linq·消费
Devin~Y2 天前
大厂内容社区面试实录:从 Spring Boot 微服务到 AI RAG 问答(附详细解析)
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
indexsunny2 天前
互联网大厂Java求职面试实战:从Spring Boot到Kafka的技术问答解析
java·spring boot·spring cloud·kafka·flyway·hikaricp·microservices
刘~浪地球3 天前
消息队列--Kafka 生产环境最佳实践
分布式·kafka·linq