odmin 发表于 2023-11-4 01:02:22

kafka 的原理

工作原理:

Topic 和分区: Kafka 中的消息被组织成一个或多个主题(Topic),每个主题可以分为多个分区(Partition)。每个分区在物理上由一个或多个服务器上的日志文件(Log Segment)组成。

生产者发送消息: 生产者(Producer)将消息发布到指定的主题,可以选择将消息发送到特定分区,也可以由 Kafka 自动选择合适的分区。生产者将消息写入分区的日志文件中,并在写入完成后获取确认。

消费者订阅消息: 消费者(Consumer)可以订阅一个或多个主题,并指定订阅的分区。消费者以消费者组(Consumer Group)的形式进行组织,每个消费者组内的消费者共享主题的分区。在一个消费者组中,每个分区只能由一个消费者消费。

消费者消费消息: 消费者以一定的速率从分区的日志文件中读取消息。Kafka 保持了消费者在每个分区中的偏移量(Offset),以跟踪消费者的消费进度。消费者可以控制偏移量的提交,从而决定消息是否被消费。

分区的复制和高可用性: Kafka 使用分区的复制机制来提供高可用性和容错能力。每个分区可以有多个副本(Replica),其中一个被选为 Leader,负责处理读写请求,其他副本作为 Follower,复制 Leader 的数据。如果 Leader 失效,会从剩余的副本中选举新的 Leader。

网络传输和数据持久化: Kafka 通过网络传输消息,生产者将消息发送到 Kafka 集群中的 Broker,消费者从 Broker 获取消息。Kafka 使用批量发送和压缩等技术来提高网络传输的效率。同时,Kafka 将消息持久化到磁盘上的日志文件中,以确保消息的持久性。
页: [1]
查看完整版本: kafka 的原理