kafka基本概念

kafka之基本概念

Topic

kafka之基本概念

  • 逻辑概念,同一个Topic的消息可以分布在不同的节点上(Broker)
  • 一个Topic包含一个或多个分区(Partition)
  • 每条消息都属于且一个Topic
  • Producer发布数据时.必须指定将该消息发个那个Topic
  • Consumer消费时,也要指定订阅哪个Topic的消息

Partition

kafka之基本概念

  • 物理概念,一个Partition只分布于一个Broker(没有备份的情况下)
  • 一个Partition物理上只对应一个文件夹
  • 一个Partition包含多个Segment(对用户透明)
  • 一个Segment对应一个文件
  • Segment由一个个不可变记录组成
  • 记录只会被append到Segment.不会被删掉删除或修改
  • 清除过期日志时,直接删除一个或多个Segment

Consumer

  • 特性:
    • 高吞吐,低延迟,kafka每秒可以处理几十万消息,延迟最低只有几毫米,每个主题可以分多个分区
      ,消费组对分区进行消费操作
    • 可扩展性,kafka集群机制热扩展
    • 持久性,可靠性,消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
    • 容错性,允许集群中节点失败(最低至少保留一个即可)
    • 高并发,支持数千个客户同时读写
  • 使用场景
    • 日志收集
    • 消息系统
    • 用户活动跟踪
    • 运营指标
    • 流式处理,比如spark streaming和strom
  • 优势
    • 可伸缩性
      • 集群在运行期间可以轻松扩展或收缩
      • 可以扩展一个kafka主题来包含更多的分区,意味着单个主题可以存储的数据是没有限制的
      • 容错性和可靠性
      • 吞吐量

Producer

  • 生产者即数据的发布者,该角色将消息发布到kafka的topic中,broker接收到生产者发送的消息后,
    broker将该消息追加到当前用于追加数据的segment中,生产者发送的消息,存储到一个partition中,
    生产者也可以指定数据存储的partition

其他

  • leader:每个partition有多个副本,其中有且仅有一个座位leader,leader是当前负责数据的读写的partition
  • follower:follower跟随leader,所有写请求都通过leader路由,数据变更会广播给所有follower,
    follower和leader保持数据同步,如果leader失效,则从follower中选举一个新的leader,当follower和leader
    同时挂掉,卡住或者同步太慢,leader会把这个follower从""in sync replicas(ISR)"列表删除,重新创建一个follower
  • AR(Assigned Replicas):分区中所有的副本统称为AR
  • ISR(IN Sync Replicas):所有和leader部分保持一定程度的副本(包括leader)组成ISR
  • OSR(Out Of Sync Replicas):和leader副本同步滞后过多的副本
  • Zookeeper:Zookeeper负责维护和协调broker(节点),当kafka系统中新增了broker或者某个
    broker发生故障失效时,由Zookeeper通知生产者和消费组,生产者和消费组依据Zookeeper的broker状态信息
    和broker协调数据的发布和订阅任务
  • HW(high Watermark):高水位,标识一个特定的offset,消费组只能拉取到这个offset之前的消息
  • LEO(log End Offset):即日志末端唯一,记录该副本底层日志中下一条消息的位移值.是下一条消息,
    如果LEO=10,标识该副本存储了10条消息,位移范围是[0,9]
    kafka之基本概念

相关文章:

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