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

相关推荐
可观测性用观测云7 小时前
通过 KafkaMQ 接入Skywalking 数据最佳实践
kafka
邂逅星河浪漫12 小时前
Docker 详解+示例
linux·docker·容器·kafka
玄辰星君15 小时前
【在 macOS 系统上使用 Docker 启动 Kafka 的完整指南】
macos·docker·kafka
友莘居士18 小时前
Logstash数据迁移之mysql-to-kafka.conf两种路由决策对比
mysql·kafka·logstash·路由决策
斯普信专业组18 小时前
Fluent Bit针对kafka心跳重连机制详解(上)
kafka·fluent bit
哈基米喜欢哈哈哈1 天前
Kafka复制机制
笔记·分布式·后端·kafka
孫治AllenSun1 天前
【Kafka】重点概念和架构总结
分布式·架构·kafka
3Cloudream1 天前
互联网大厂Java面试深度解析:从基础到微服务云原生的全场景模拟
java·spring boot·redis·elasticsearch·微服务·kafka·电商架构
Hello.Reader2 天前
Kafka 4.0 从零到一8 步快速上手 + 实战要点与避坑
分布式·kafka
neoooo2 天前
Spring Boot 3 + Kafka 实战指南
java·spring boot·kafka