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的消费者可以读取消息。

相关推荐
Devin~Y2 天前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
AllData公司负责人2 天前
数据同步平台|AIIData数据中台实现MySQL、Hive、Kafka 一键接入Doris
大数据·数据库·hive·mysql·kafka·实时同步
whaledown4 天前
互联网大厂Java求职面试三轮提问详解(涵盖Spring Boot、微服务、Kafka等核心技术)
java·jvm·数据库·spring boot·微服务·面试·kafka
梦想的颜色5 天前
【Docker部署插件】:使用 Docker 部署生产级 Kafka 完整版教程
安全·docker·中间件·kafka·消息队列·docker-compose·后端开发
考虑考虑5 天前
kafka4安装
后端·kafka·自动化运维
lzhcoder6 天前
Spring Boot 集成 Kafka:先跑通 Demo,再避开那 80% 的人踩过的坑
java·kafka
Kyrie_Li8 天前
Spring Boot Kafka 生产级配置全解析:从入门到精通
spring boot·后端·kafka
2301_801184758 天前
kafka-zookeeper
分布式·zookeeper·kafka
Devin~Y8 天前
抖音级短视频推荐与直播带货平台面试实战:从 Java 微服务到 RAG 智能客服全链路解析
java·spring boot·redis·spring cloud·kafka·agent·rag
livemetee8 天前
关于【Kafka高可用配置】
分布式·kafka