Bota5ky

Kafka学习笔记(五):Brokers, Topics and Topic Replication, acks

Kafka Brokers

  • 一个kafka集群由多个 brokers(servers)组成
  • 每个代理由ID(整数)标识
  • 每个代理只包含特定的主题分区
  • 连接到任何kafka代理(也称为引导代理后),客户端、生产者或使用者将连接到整个kafka集群
  • 最好是从3个代理开始,但在有些大型集群中会有超过100个代理
  • 代理的编号可以选择从任意数开始

Kafka 代理机制

  • 每个 kafka 代理也被称为“引导服务器”
  • 每个代理知道所有的代理、主题和分区(元数据)

主题复制因子

  • 主题应有一个复制因子>1(通常在2与3之间)
  • 因此,万一有一个代理挂了,其他代理仍可以提供服务

分区领导者的概念

  • 在任何时刻,一个分区只会有一个代理作为领导者
  • 生产者只会把数据发送给作为分区领导者的代理
  • 其他的代理会从分区领导者复制数据
  • 因此,每个分区拥有一个领导者和多个ISR(in-sync replica 同步副本)

生产者、消费者和领导者之间的默认行为

  • kafka 生产者只会向分区的领导者代理写入数据
  • kafka 消费者默认会从分区的领导者读取数据

Kafka 消费者副本获取(Kafka v2.4+)

  • 自从 Kafka 2.4,可以配置让消费者从最近的副本进行读取,这可以降低延迟,如果是在云上,则可以降低网络成本

生产者的确认机制 acks

生产者可以选择是否接受写入数据的确认消息:

  • acks=0:生产者不会等待确认,如果代理崩溃,可能会导致数据丢失
  • acks=1:生产者会等待领导者的确认,可能会导致有限的数据丢失
  • acks=all:要求领导者和所有副本的确认,不会有数据丢失
posted @ 2023-01-03 22:30  Bota5ky  阅读(47)  评论(0编辑  收藏  举报