木风软件

电话
199 8202 6376
周一至周六 08:00 - 22:00

Kafka核心概念入门:从定义到架构全景

Kafka核心概念入门:从定义到架构全景

一、什么是Kafka?

ApacheKafka官方定义为一个事件流平台,具备以下关键能力:

1.发布与订阅事件流:支持事件的写入和读取,并可从其他系统持续导入和导出数据。

2.持久化存储事件流:可自定义存储时长,保证数据的可靠存储。

3.实时与回溯处理:支持实时处理事件流,也支持对历史事件进行回溯分析。

一个简单场景理解Kafka:

系统A将数据发送到Kafka

Kafka持久化存储该数据

系统B从Kafka中读取系统A发送的数据

在此过程中,涉及两个核心问题:

1.事件编码格式:Kafka使用纯二进制字节序列存储数据,而非JSON、ProtocolBuffer等结构化格式。

2.传输模型:Kafka同时支持以下两种消息传输模型:

点对点模型(消息队列模型):消息只能被一个消费者消费

发布/订阅模型:基于Topic的发布与订阅,允许多个生产者和多个消费者

二、为什么要使用Kafka?

Kafka的核心价值主要体现在以下场景中:

1.流量缓冲

当系统A出现流量突增时,若直接对接系统B,可能瞬间压垮下游系统。Kafka作为中间层,能平滑流量峰值,为系统B提供缓冲时间,避免系统崩溃和链路雪崩。

2.数据同步

Kafka常与Flink等流处理框架结合,用于:

离线数据链路流转

离线数据到在线服务的传输

跨系统数据同步

三、Kafka核心概念全景

以下是Kafka架构中的关键组件及其作用:

概念说明
Topic发布和订阅的对象,通常按业务拆分,不同业务使用不同Topic
Producer生产者,负责将消息写入Topic,并选择写入的分区
Consumer消费者,从Topic中读取消息
ConsumerGroup由多个Consumer组成,共同消费一组Topic,实现负载均衡
Partition分区,类似于HBase的Region,用于支持横向扩展和并行处理
Replica副本,包括Leader和Follower,保障高可用
BrokerKafka服务端进程,处理客户端请求,通常部署在多台机器上
Rebalance当Consumer加入或离开时,重新分配分区的过程
Offset消息在分区中的唯一递增标识
ConsumerOffset消费者记录自己消费进度的位置

关键机制详解:

1.分区与副本

每个Topic可分为多个Partition,以支持横向扩展。

每个Partition有1个Leader和n个Follower副本。

写入和消费仅由Leader处理,Follower同步Leader数据。

2.消费者组与负载均衡

一个Partition只能被同一个ConsumerGroup中的一个Consumer消费。

支持动态扩缩容,新增或移除Consumer时会触发Rebalance。

3.存储机制

Kafka使用Log结构存储数据,每个Log由多个LogSegment组成。

消息仅支持追加写入,写满一个Segment后创建新的。

定期清理旧Segment以释放磁盘空间。

四、总结

本文简要介绍了:

Kafka作为事件流平台的核心能力

其在实际场景中的主要价值:流量缓冲与数据同步

Kafka的核心架构概念,包括Topic、Producer、Consumer、Partition、Replica、Broker等

理解这些基础概念是进一步学习Kafka高级特性、性能调优和应用实践的重要前提。接下来,我们可以深入Kafka的生产与消费机制、副本同步、消息持久化等主题,逐步构建完整的Kafka知识体系。

软件开发 就找木风!

一家致力于优质服务的软件公司

8年互联网行业经验1000+合作客户2000+上线项目60+服务地区

关注微信公众号

在线客服

在线客服

微信咨询

微信咨询

电话咨询

电话咨询