Kafka概念详解——http://kafka.apache.org/24/documentation.html

Kafka的基本概念

Broker:

  • Kafka集群包含一个或多个服务器,这种服务器被称为broker。
  • broker端不维护数据的消费状态,提升了性能。
  • 直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,
    减少耗性能的创建对象和垃圾回收。

Producer:

负责发布消息到Kafka broker

Consumer:

消息消费者,向Kafka broker读取消息的客户端,consumer从broker拉取(注意是拉去不是broker推送)数据并进行处理。

Consumer Group:

  • 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

Topic:

  • 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。
  • 一个逻辑的概念,由1到多个分区(Partition)组成。
  • Topic类似于文件系统中的文件夹,events是目录中的文件
  • 一个Topic可以被多个用户操作
  • 每个Topic KafKa集群都会维护一个分区日志
    02.Kafka基本概念详解

Partition:

  • 实际消息存储单位
  • 一个或多个Partition构成Topic
  • 每个分区都是顺序,不可变的队列
  • 每个分区是一组有序的消息日志
  • 每个分区都有一个物理日志文件
  • 分区的数量在运行期间可以增加,但是不能减少
  • 生产者生产的消息,只会发给主题的一个分区
  • 一个topic的分区可以分布在不同的broker上

offset

  • 属于分区里的一个概念
  • 当消息到达分区时,该消息会有一个标识id就叫offset
  • offset是消息在分区中的唯一标识
  • KafKa通过offset来保证分区内消息的顺序性
  • offset不跨分区
  • offset从0开始,依次递增

Replica

  • 属于分区里的一个概念
  • 一个分区内的消息可以有多个副本
  • 与ES的副本机制类似
  • 副本分为leader和follower
  • leader副本负责处理读写请求
  • follower副本只负责与leader副本的消息同步
  • 副本分散在不同的broker中,当leader副本出现故障时,从follower副本中重新选举新的leader副本
  • 分区中所有副本统称为AR
  • 某Topic比如有三个分区每个分区三个副本如下图:
    02.Kafka基本概念详解

相关文章:

  • 2021-07-14
  • 2021-06-27
猜你喜欢
  • 2021-08-23
  • 2021-05-06
  • 2021-12-03
相关资源
相似解决方案