基础篇

Kafka特点

  • 分布式
    1. 多分区
    2. 多副本
    3. 多订阅者
    4. 基于ZooKeepler调度
  • 高性能
    1. 高吞吐量,每秒几十万
    2. 低延迟
    3. 高并发
    4. 时间复杂度o(1)
  • 持久性与扩展性
    1. 数据可持久化
    2. 容错性
    3. 支持在线水平扩展
    4. 消息自动平衡

应用场景

  • 消息队列
  • 行为跟踪
  • 元信息监控
  • 日志收集
  • 流处理
  • 事件源
  • 持久性日志

基本概念

  • Producer:消息和数据的生产者,向Kafka的一个topic发布消息的进程/代码/服务
  • Consumer:消息和数据的消费者,订阅数据(Topic)并且处理其发布的消息的进程/代码/服务
  • Consumer Group:逻辑概念,对于同一个topic,会广播给不同的 group,一个group中,只有一个consumer可以消费该消息
  • Broker:物理概念,Kafka集群中的每个Kafka节点
  • Topic:逻辑概念,Kafka消息的类别,对数据进行区分、隔离
  • Partition:物理概念,Kafka下数据存储的基本单元。一个Topic数据,会被分散存储到多个Partition,每个Parition是有序的
    1. 每一个Topic被切分为多个Partitions
    2. 消费者数目少于或等于Partition的数目
    3. Broker Group中的每一个Broker保存Topic的一个或多个Partitions
    4. Consumer Group中仅有一个Consumer读取Topic的一个或多个Partition,并且是唯一的Consumer
  • Replication:同一个Partition可能会有多个Replica,多个Replica之间数据是一样的
    1. 当集群中有Broker挂掉的情况,系统可以主动地使用Replicas提供服务
    2. 系统默认设置每一个Topic的replication系数为1,可以在创建Topic时单独设置
    3. Replication的基本单位是Topic的Partition
    4. 所有的读和写都从Leader进,Followers只是作为备份
    5. Follower必须能够及时复制Leader的数据
    6. 增加容错性和可扩展性
  • Replication Leader:一个Partition的多个Replica上,需要一个Leader负责该Partition上与Producer和Consumer交互

基础结构

kafka1.png
  • Producer Api
  • Cnosumer Api
  • Streams Api
  • Connectors Api


    Kafka基础结构2.png

消息结构

消息结构.png

你可能感兴趣的:(基础篇)