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 @   Sierra、  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示