kafka架构分析

Kafka简介

Kafka是一款高吞吐量、分布式的发布—订阅消息系统。

Kafka基本概念

  1. Broker:
    每个Kafka的实例称为代理(Broker),通常也称代理为Kafka服务器。
  2. Message/Record:
    消息是Kafka通信的基本单位,消息生产者会将消息序列化后发送给Kafka服务器,消息接收者则会反序列化获取消息。
  3. Producer:
    生产者负责将消息发送给代理,也就是向Kafka代理发送消息的客户端。
  4. Comsumer:
    消费者以拉取(pull)的方式拉取数据,它是消费的客户端。
  5. Topic:
    Kafka将一组消息抽象归纳为一个主题,也就是说,一个主题就是对消息的一个分类。生产者将消息发送到指定的主题,消费者从订阅的 主题中消费消息。
  6. Partition:
    Kafka将一组消息归纳一个主题,而每个主题又被分成一个或多个分区,每个分区由一系列有序、不可变的消息组成,是一个有序的队列。每个分区在物理上对应为一个文件夹,分区的命名规则为主题名+”-“,再接上分区编号,分区编号从0开始。
  7. Replica:
    每个分区有一个或多个副本,分区的副本分布在集群的不同代理上,以提高可用性。
  8. Segment:
    一个日志又被划分为多个日志段,日志段是Kafka日志对象分片的最小单位。一个日志段对应磁盘上一个具体日志文件和两个索引文件,.log文件用于保存消息数据,.index和.timeindex分别表示消息偏移量索引文件和消息时间戳索引文件。
  9. Leader副本和Follower副本:
    由于每个分区有一个或多个副本,就需要保证副本数据的一致性,Kafka会选择其中一个副本作为Leader,而其他的副本即为Follower。只有Leader副本才负责处理客户端的读写请求,Follower副本从Leader副本不同数据。Leader与Follower并不是固定不变的,如果Leader失效,Kafka会通过象应的选举算法从其他Follower中选出新的Leader。
  10. ConsumerGroup:
    每一个消费者都属于一个特定消费组,我们可以为每个消费者指定一个消费组,以groupId代表消费组名称。
  11. Offset:
    任何发布到分区的消息会被直接追加到日志文件的尾部,而每条消息在日志文件中的位置都会对应一个按序递增的偏移量。消费者可以通过控制消息偏移量来进行消费,比如可以从指定偏移量开始消费。消费者已消费的消息对应的偏移量也需要保存。旧版本中消费者的消息偏移量保存在Zookeeper中,而新版本则是保存在Kafka内部主题当中。
  12. Zookeeper:
    Kafka利用Zookeeper保存相应的元数据信息,Kafka元数据信息包括如代理节点信息、Kafka集群信息、主题信息、分区信息、分区副本分配方案信息等。Kafka在运行时会监听保存在Zookeeper上的元数据变化,从而方便对Kafka进行管理操作。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值