本教程假设您是从头开始的,并且没有现有的Kafka
或ZooKeeper
。 由于Kafka
控制台脚本在基于Unix的平台和Windows平台上有所不同,因此在Windows平台上使用bin\windows\
而不是bin /
,并将脚本扩展名更改为.bat
。
1.下载Apache Kafka2.3.1
下载 2.3.1 release版本并使用tar
命令解压。
tar -xzf kafka_2.12-2.3.1.tgz
cd kafka_2.12-2.3.1
2.启动服务
Kafka
使用了ZooKeeper
,因此如果您还没有启动Zookeeper
服务,请先启动ZooKeeper
服务。 您也可以使用kafka
自带的脚本命令来快速启动一个单节点ZooKeeper
实例。
[root@flink kafka_2.12-2.3.1]# bin/zookeeper-server-start.sh config/zookeeper.properties
[2019-11-13 13:31:01,854] INFO Reading configuration from: config/zookeeper.properties
......
[2019-11-13 13:31:01,889] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
接下来启动kafka
服务
bin/kafka-server-start.sh config/server.properties
[2019-11-13 13:32:54,020] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2019-11-13 13:32:54,425] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler)
......
[2019-11-13 13:32:55,800] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
Zookeeper
和Kafka
服务已经启动成功。
3.创建一个Topic
创建一个名为test
的单分区和单副本的Topic
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
/kafka-topics.sh
是用来管理Topic的命令
参数:
- create :创建Topic
- bootstrap-server :kafka的服务broker地址
- replication-factor:副本的个数
- partitions 分区个数
- topic:Topic的名字
现在,如果我们运行list
命令,查看该broker中的Topic的列表:
[root@flink kafka_2.12-2.3.1]# bin/kafka-topics.sh --list --bootstrap-server localhost:9092
test
或者,除了手动创建Topic外,还可以将broker配置为在发布不存在的Topic 或者已删除的Topic时自动创建Topic。
auto.create.topics.enable=true
4.发送消息
Kafka自带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。 默认情况下,每行将作为单独的消息发送。
运行生产者,然后在控制台中键入一些消息以发送到Kafka的broker上。
[root@flink kafka_2.12-2.3.1]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>fdasfafa
>lldlldld
>I
>Love
>You
>
5.消费消息
Kafka还有一个命令行消费者,它将消息转储到标准输出。
[root@flink kafka_2.12-2.3.1]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
fdasfafa
lldlldld
I
Love
You
上面的每个命令都在不同的终端上运行,现在我们可以能够在生产者终端中键入消息,并看到它们出现在消费者终端中。
注意:所有的命令行工具都有其他选项。 在不带参数的情况下运行该命令将显示用法信息,并对其进行详细使用方法。
到这里一个简单的单机的Kafka的broker已经搭建成功,后面我们会介绍Kafka集群的搭建。敬请期待。