Kakfa(一) 基本概念

Kafka

  • Kafka是一个多分区、多副本,使用ZooKeeper进行协调的分布式消息系统
  • Kafka相较其他消息队列最大的特点和优势是高吞吐
  • 一个Kafka系统由若干生产者消费者Broker、一个ZooKeeper集群构成

主题 Topic

  • Kafka中的消息以主题为单位进行归类,生产者将消息发送到特定的主题,消费者订阅主题,从特定的主题消费消息

分区 Partition

  • 分区可以看作Kafka存储消息用的一个可追加的日志文件
  • 一个分区只属于一个主题,一个主题可以包含多个分区
  • 消息在分区中会被分配一个唯一的偏移量offset
  • Kafka保证分区内的消息是有序的,但并不保证主题内的消息是有序的

副本 Replica

  • 对于同一个分区,Kafka可以为其存储多个副本,提升系统的容灾能力
  • 副本之间具有主从关系,仅有Leader副本负责所有的读写请求,其他Follower副本单纯的从Leader副本复制消息
  • 副本因子 = 副本个数 = Leader副本数 (1) + Follower副本数(若干)
  • AR(Assigned Replicas):所有副本的集合
  • ISR(In-Sync Replicas):所有与Leader副本保持同步的副本集合,包括Leader副本,其与全部副本的补集称为OSR(Out-Sync Replicas)

生产者 消费者

  • Kafka生产者向磁盘中写入数据时,是严格的追加数据,而非随机写。在严格进行顺序写的情况下,写入磁盘速度可以和写入内存的速度接近
  • 生产者生产的消息先进入系统的缓存,再顺序的写入磁盘
  • Kafka消费者通过拉取的方式从Broker获取消息,而非Broker给消费者进行推送。这样可以让消费者自行保存消息消费进度

消费者组

  • 每个消费者都属于一个消费者组,一条消息只会被同一个消费者组中的一个消费者消费
  • 一个分区只能被一个消费者组中的一个消费者订阅,不存在一个消费者组中的不同消费者订阅同一个分区的情况。但是一个分区可以被不同消费者组中的消费者订阅,多个分区也可以被同一个消费者订阅
  • Kafka通过消费者组的概念来区分点对点(P2P)模式和发布/订阅(Pub/Sub)模式,如果所有消费者都属于同一个消费者组,即为点对点模式,如果所有消费者都从属于不同的消费者组,则为发布/订阅模式
  • 消费者参数存储在消费者客户端,通过消费者客户端的group.id配置

你可能感兴趣的:(kafka,分布式)