1. kafka概述

1.1 定义

kafka是一个分布式的,基于发布/订阅模式的消息队列。

1.2 消息队列

1.2.1 特点

  • 解耦
  • 削峰
  • 异步

    1.2.2 消息队列的两种模式

    (1) 点对点模式
    一对一,消费者主动拉取数据,消息收到后消息清除
    (2) 发布/订阅模式
    一对多,消费者消费数据之后不会清除消息,有保存时限
  1. 消费者主动拉取消息(kafka). 长轮询
  2. 队列主动推动消息. 消费者处理消息速率不同,宕机或者浪费资源

    1.3 kafka的基础架构

    broker:一台kafka服务器就是一个 broker,一个broker可以有多个 Topic
    Topic:消息主题,可以理解为一个队列,生产者和消费者面向的都是一个Topic
    Partition:消息主题下的分区,一个Topic可以分为多个Partition。同一个分区只能被同一个消费者组内的一个消费者消费(消费者组是做同一件事,不拿重复的数据)
    一个Topic的每个Partition有多个副本,一个leader和若干个follower,保证高可用
    Consumer Group: