Kafka基础入门

Kafka设计架构

Kafka由生产者(Producer)、消费者(Consumer)、Broker以及Zookeeper集群组成,Zookeeper负责集群元数据的管理以及控制的选举等操作,Producer将消息发送到Broker, Broker负责将受到的消息存储到磁盘中,而Consumer负责从Broker订阅消息,如下图所示。

生产者

负责创建消息,然后将消息投递到Broker中,生产者程序通常持续不断地向一个或多个主题发送消息。

消费者

订阅主题消息的客户端称为消费者,消费者也能够同时订阅多个主题的消息。

主题

主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务

Broker

Kafka 的服务器端由被称为 Broker 的服务进程构成,即一个 Kafka 集群由多个 Broker 组成,Broker 负责接收和处理客户端发送过来的请求,以及对消息进行持久化。虽然多个 Broker 进程能够运行在同一台机器上,但更常见的做法是将不同的 Broker 分散运行在不同的机器上,这样如果集群中某一台机器宕机,即使在它上面运行的所有 Broker 进程都挂掉了,其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一

副本

Kafka实现高可用的另一个机制是备份机制,把相同的数据拷贝到多台机器上存储,这些相同的数据拷贝在 Kafka 中被称为副本(Replica)。Kafka 定义了两类副本:领导者副本(Leader Replica)和追随者副本(Follower Replica)。前者对外提供服务,这里的对外指的是与客户端程序进行交互;而后者只是被动地追随领导者副本而已,不能与外界进行交互。副本的工作机制也很简单:生产者总是向领导者副本写消息;而消费者总是从领导者副本读消息。至于追随者副本,它只做一件事:向领导者副本发送请求,请求领导者把最新生产的消息发给它,这样它能保持与领导者的同步。

分区

Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition),每个分区是一组有序的消息日志。生产者生产的每条消息只会被发送到一个分区中,也就是说如果向一个双分区的主题发送一条消息,这条消息要么在分区 0 中,要么在分区 1 中。

消费者组

Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。

消费者位移

Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。

posted @ 2021-09-21 23:04  Sierra、  阅读(263)  评论(0编辑  收藏  举报