Kafka基础知识

Kafka 简介

  • 中间件,如Kafka,用来存储消息的软件(组件)
  • 程序员可以在消息队列中 存 取 消息
  • 很多时候消息队列是临时存储(设定期限:消息在MQ中保存10天)

消息

  • 存在topic主题,类似数据库中的表,但是是半结构化
    • 一般存同一类型的消息,但有些情况下也可以存不同类型的
    • 主题可以包含多个分区Partition,不同的分区存在不同的服务器上,使Kafka集群能够线性拓展
      • 存在分区内的消息是不可变的
      • Kafka可以通过偏移量(下标)对消息进行提取,无法对消息的内容检索或查询
      • 分区损坏数据丢失,Kafka通过副本机制(副本也是分区),保证数据可靠性(replication-factor=3 // 副本因子为3)
        • Kafka会选择一个副本作为主分区leader,用于数据的读取
        • 其他副本为follow,只复制leader的数据
        • 维护一个ISR的集合(正在同步的副本集),监控数据同步的状态
  • 消息形式:键值对
    • 如果不指定key,key的值为空,如果存消息使key为空,Kafka会将消息平均匀到各个分区
    • 如果消息指定key,那么相同key的消息会存在同一分区,保证相同性的消息按照一定顺序进行写入
  • 消息代理Broker
    • Kafka集群是由多个Broker组成的,Broker负责消息的读写请求,并将消息存入磁盘中。
    • 通常,一台服务器就是一个Broker
      • 举例:有多个Broker组成每个Kafka集群,每个Broker中有多个分区,其中一个为主分区leader,其他几个为follow。这个Broker就负责处理这个leader的读写请求,负责在follow上同步数据
posted @ 2024-07-13 11:29  落花流水sas  阅读(11)  评论(0)    收藏  举报