(2)Kafka架构分析

1、Kafka架构

2、Topic & Partition

2.1、Topic:

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

2.2、Partition

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

3、Partitioner

3.1、Sample Hash Partitioner

3.2、Sample Round Robin Partitioner

4、Sync Producer vs. Async Producer

4.1、Sync Producer

  • 低延迟
  • 低吞吐率
  • 无数据丢失

4.2、Aync Producer

  • 高延迟
  • 高吞吐率
  • 可能会有数据丢失

猜你喜欢

转载自blog.csdn.net/MyronCham/article/details/84948876