知识点
Kafka基本架构的介绍:
- Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker - Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处) - Partition
Partition是物理上的概念,每个Topic包含一个或多个Partition. - Producer
负责发布消息到Kafka broker - Consumer
消息消费者,向Kafka broker读取消息的客户端。 - Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
1.Java环境
2.Kafka安装
Kafka官网下载界面
本次实验Kafka版本为:kafka_2.11-2.0.0
安装包内已经附带zookeeper,不需要额外安装zookeeper
3.Zookeeper启动
Kafka根目录下运行:
bin/zookeeper-server-start.sh config/zookeeper.properties
出现:
INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
表示ZooKeeper已经成功地在端口2181上启动了。
4.Kafka服务器启动
(Zookeeper启动状态下)
Kafaka根目录下运行:
bin/kafka-server-start.sh config/server.properties
控制台输出:
INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
表示Kafka服务器启动成功,默认端口是9092.
5.创建Topic、查看Topic状态
创建一个topic用于消息的发送与接收。
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test --partitions 1 --replication-factor 1
该topic名字是test,分区partition数量为1,副本replication数量为1。
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
6.Producer、Consumer视角
1.Producer
kafka默认提供了脚本工具,可以不断地接受标准输入,并将它们发送到kafka的某个topic上的分区上。
启动以下命令后,输入一行文本数据,脚本将该文本封装成一条kafka消息发送给指定的topic。
Kafaka根目录下运行:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
每当按下回车键后该行文本即会被发送
2.Consumer
执行以下命令运行