Kafka 单分区有序 怎么做到全局有序

Kafka 单分区有序 怎么做到全局有序
主要概念
  • Topics: 主题是一个发布记录的目录或者概要名称
  • broker :进程,一个kafka就是一个broker,多个brok可以组成一个集群
  • consumer
    1. 一个组内共享一个group id
    2. 组内的消费者协调一致去消费topic的所有分区
    3. 每个分区P0只能被group A 里的一个消费组C1消费
    4. 容错消费机制
      Kafka 单分区有序 怎么做到全局有序_第1张图片
  • partition:
    1. 单分区有序的,不可变记录序列,
    2. 这些记录被追加到一个结构化的提交日志中,
    3. 每条记录都没分配了一个唯一标识的连续id号,就是offset;
    4. 每个partition对应一个日志目录,目录下面对应多个日志分段(LogSegment),每个LogSegment由一个.index 和 .log两个文件组成,LogSegment命名规则:第一个全是0,后面为上一个logSegment最后一个offset值;索引文件采用按稀疏索引
    5. kafka可以设置保存策略,记录在设置的时间内可以使用,超过时间,将被丢弃释放空间,所以kafka可以长时间保存数据
      Kafka 单分区有序 怎么做到全局有序_第2张图片
分区的作用
  1. 允许日志扩展到超过单个服务器所能容纳的大小,每个分区都必须有一个适合承载它的服务器,但一个主题可能有多个分区,因此它可以处理任意数量的数据
  2. 他作为平行度的单位
如何做到全局有序
  1. 一个topic使用一个分区,但是这样会降低性能
  2. 针对单分区有序,我们想办法发同一个特征的数据写到一个分区

你可能感兴趣的:(Kafka,Kafka)