📜  Apache Kafka-工作流程(1)

📅  最后修改于: 2023-12-03 14:59:20.575000             🧑  作者: Mango

Apache Kafka-工作流程

Apache Kafka是一个高性能,分布式流式处理平台,它基于发布-订阅模式(pub-sub)的消息系统,可以用于构建实时数据管道和流媒体应用程序。

工作原理

Apache Kafka主要由以下三个组件组成:

1. Producer

Producer是消息的生产者,主要负责向Kafka集群提供消息,并将消息发送到指定的topic中。生产者只需要负责将消息发送到Kafka集群中,而不需要了解谁会消费这些消息。

生产者将消息发送到Kafka的一个或多个分区中,而不是将消息发送到整个topic中。每个分区在物理上都是一个独立的日志文件,它维护了每个消息的顺序。

2. Broker

Broker是消息的中介,主要负责接收来自Producer的消息,并将消息存储到磁盘上的一个或多个分区中。Broker还负责为Consumer提供消息。

多个Broker组成一个Kafka集群,在集群中,分区会被分布在不同的Broker上,也就是每个Broker都会存储一部分分区的数据。每个Broker都可以充当leader或follower,leader负责处理读和写请求,而follower仅负责备份数据。在leader宕机时,follower会自动接管leader的任务。

3. Consumer

Consumer是消息的消费者,主要负责消费Kafka中存储的消息,并将消息发送到下游系统中。Consumer需要订阅一个或多个topic,并从Broker中获取消息。

Consumer通过consumer group进行组织,每个consumer group中可以有一个或多个consumer,消费一个topic的消息。一个分区中,同一时间只有一个consumer能够消费消息。在一个group中,可以有多个consumer来消费不同的分区。消费者还可以利用offset功能来控制消息的消费顺序。

流程图

下面是Apache Kafka的工作流程图:

graph LR
A(Producer)<-->B(Broker)
B(Broker)<-->C(Consumer)
总结

Apache Kafka的工作流程简单明了,Producer负责发送消息,并将消息发送到指定的topic中。Broker负责接收来自Producer的消息,并将消息存储到磁盘上的一个或多个分区中。Consumer负责消费Kafka中存储的消息,并将消息发送到下游系统中。多个Broker组成一个集群,在集群中,分区会被分布在不同的Broker上。每个分区在物理上都是一个独立的日志文件,它维护了每个消息的顺序。消费者可以通过consumer group进行组织,每个consumer group中可以有一个或多个consumer,消费一个topic的消息。