一、架构设计
1、架构设计图
二、Kafka工作流程
1、数据写入示意图
- 每一个topic可以有一个或者多个分区
- 每个分区都是有序的
-
2、数据写入与消费示意图
kafka集群使用默认的可配置的保留期限存贮broker中的数据
- kafka的性能对于数据大小来说是一样的
每个消费者中存储的唯一一个元数据即为偏移量。所以可以灵活跳转位置,从任意位置开始消费。
3、多分区数据与多个消费组的交互是示意图
消费者使用消费者组标记自己,每个发出的消息都会被发送到每个消费者组中的一个消费者
- 如果所有消费者都具有相同的使用者组,那么就会平衡的分配这些数据
-
三、shell操作
1、kafka提供五大核心API
- Producer API
- 允许应用程序发送数据到一个topic中
- Consumer API
- 允许应用程序订阅一个或多个topic,并处理这些数据
- Connector API
- 即为连接器,实现从kafka和其他系统之间复制数据
- Stream API
- 允许处理数据流,将topic中的数据消费并且传输到另外的topic中
- Admin API
- 管理和检查topic troker
2、shell常用命令
创建topicsh usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --create --zookeeper cluster1.hadoop:2181 --replication-factor 1 --partitions 1 --topic test
查看集群中的topic
sh usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --list --zookeeper cluster1.hadoop:2181
删除topic(标记删除)
sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --delete --zookeeper cluster.hadoop:2181 --topic test
作为生产者向指定broker发送消息
sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-conspol-producer.sh --broker-list cluster1.hadoop:6667 --topic testmhk
作为消费者指定topic消费消息
sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-sonsol-consumer.sh --bootstarp-server cluster1.hadoop:6667 -topic testmhk
查看指定topic状态信息
sh /usr/hdp/3.1.0.0-78/kafka/bin/kafka-topics.sh --describe --zookeeper sc-slave1:2181 --topic testmhk
- 管理和检查topic troker
- Producer API