一、架构设计

1、架构设计图Kafka架构设计与shell操作 - 图2

二、Kafka工作流程

1、数据写入示意图

Kafka架构设计与shell操作 - 图3

  • 每一个topic可以有一个或者多个分区
  • 每个分区都是有序的
  • 每个分区中的每个记录都会被分配一个id即offset

    2、数据写入与消费示意图

    Kafka架构设计与shell操作 - 图4

  • kafka集群使用默认的可配置的保留期限存贮broker中的数据

  • kafka的性能对于数据大小来说是一样的
  • 每个消费者中存储的唯一一个元数据即为偏移量。所以可以灵活跳转位置,从任意位置开始消费。

    3、多分区数据与多个消费组的交互是示意图

    Kafka架构设计与shell操作 - 图5

  • 消费者使用消费者组标记自己,每个发出的消息都会被发送到每个消费者组中的一个消费者

  • 如果所有消费者都具有相同的使用者组,那么就会平衡的分配这些数据
  • 如果所有消费者不具有相同的组,那么会广播到每一个组

    三、shell操作

    1、kafka提供五大核心API

    • Producer API
      • 允许应用程序发送数据到一个topic中
    • Consumer API
      • 允许应用程序订阅一个或多个topic,并处理这些数据
    • Connector API
      • 即为连接器,实现从kafka和其他系统之间复制数据
    • Stream API
      • 允许处理数据流,将topic中的数据消费并且传输到另外的topic中
    • Admin API
      • 管理和检查topic troker

        2、shell常用命令

        创建topic
        sh usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --create --zookeeper cluster1.hadoop:2181 --replication-factor 1 --partitions 1 --topic test
        图片.png查看集群中的topic
        sh usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --list --zookeeper cluster1.hadoop:2181
        图片.png删除topic(标记删除)
        sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --delete --zookeeper cluster.hadoop:2181 --topic test
        图片.png作为生产者向指定broker发送消息
        sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-conspol-producer.sh --broker-list cluster1.hadoop:6667 --topic testmhk
        图片.png作为消费者指定topic消费消息
        sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-sonsol-consumer.sh --bootstarp-server cluster1.hadoop:6667 -topic testmhk
        图片.png查看指定topic状态信息
        sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --describe --zookeeper sc-slave1:2181 --topic testmhk
        图片.png