Bota5ky

Kafka学习笔记(二):Topics, Partitions and Offsets

Kafka Topics

  • Topics: 一种特殊的数据流
  • 就像数据库中的表,但没有所有的约束
  • 可以有任意多的 Topics
  • 一个 Topic 由它的 name 定义
  • 任意格式的消息格式
  • Topic 中的消息序列称为 data stream
  • 你无法像数据库一样查询 Topics

Partitions and offsets

  • Topics 被划分为 Partitions
    • 每个分区中的消息会被排序
    • 每个分区中的消息会有一个递增的 id,即 offset
  • Kafka topics是不可变的,一旦数据写入到分区就不可修改
  • 数据只保留有限时间(默认是一周,可配置)
  • 即使前面的数据被删除,offset 也不会被复用
  • 消息的顺序只在一个分区内得到保证
  • 当数据(Record消息记录,包含key和value)被发送到kafka主题时,但key为空时,会以轮询的方式写入不同的分区,key不为空时,相同key的消息会被写入到同一个分区

Leader, Follower, and In-Sync Replica (ISR) List

  • ISR 集合包含了当前可用的、与 Leader 分区保持同步的副本(Replica)
  • ISR 集合的信息保存在每个 Broker 的日志目录中的元数据文件中,文件名为 isr-[partition-id]。该元数据文件包含了每个分区的 ISR 集合及其相关的信息,比如 Leader 副本、副本列表、最后一次同步的位置等。
  • 如果某个副本不能正常同步数据或者落后的比较多,那么kafka会从ISR中将这个节点移除,直到它追赶上来之后再重新加入
posted @ 2023-01-02 20:36  Bota5ky  阅读(61)  评论(0编辑  收藏  举报