学习教程

https://www.yiibai.com/kafka/apache_kafka_introduction.html

Windows 安装运行 Kafka:https://cloud.tencent.com/developer/article/1497098

Zookeeper

默认占用 2181 端口

安装

由于Kafka的运行依赖于Zookeeper,所以在运行Kafka之前需要安装并运行Zookeeper

  1. Zookeeper下载路径 http://zookeeper.apache.org/releases.html#download

  2. 解压到文件下(我的目录是 D:\Program Files\zookeeper-3.5.2-alpha)

  3. 打开D:\Program Files\zookeeper-3.5.2-alpha\conf,复制zoo_sample.cfg重命名成zoo.cfg

  4. 编辑zoo.cfg,修改dataDir为【dataDir=/zookeeper-3.5.2-alpha/data】

  5. 添加环境变量

    1. ZOOKEEPER_HOME D:\Program Files\zookeeper-3.5.2-alpha
    2. Path 在现有的值后面添加 %ZOOKEEPER_HOME%\bin;

运行

  1. 打开 cmd
  2. 运行:zkserver

Kafka

  • Kafka 默认占用 9092 端口,并连接 zookeeper 的默认端口 2181

安装

  1. Kafka下载路径 http://kafka.apache.org/downloads

  2. 解压文件(我的目录是D:\kafka_2.12-0.11.0.0 【这里不要在Program Files等文件名之间有空格的目录下,不然一会执行会不识别路径】)

  3. 打开目录 D:\kafka_2.12-0.11.0.0\config 下 server.properties 文件,把 log.dirs 修改为【log.dirs=D:\kafka_2.12-0.11.0.0\kafka-logs】

启动

进入kafka文件目录D:\kafka_2.12-0.11.0.0,执行以下命令,运行 kafka 服务器

1
.\bin\windows\kafka-server-start.bat .\config\server.properties

测试

创建主题 test

1
2
3
// 进入kafka安装目录的 D:\kafka_2.12-0.11.0.0\bin\windows 下按shift +右键,选择“在此处打开命令窗口”,输入如下命令并回车

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

启动producter生产者「向消息队列 test 发送数据」

1
2
3
4
5
// 进入目录D:\kafka_2.12-0.11.0.0\bin\windows 输入如下命令

kafka-console-producer.bat --broker-list localhost:9092 --topic test

// 输入内容,如果在 consumer 窗口能看到内容,则说明kafka 安装成功

启动consumer 消费者「从消息队列 test 接收数据」

1
2
3
// 进入目录D:\kafka_2.12-0.11.0.0\bin\windows输入如下命令

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

kafka常用命令

  • 列出主题
1
kafka-topic.bat -list -zookeeper localhost:2181
  • 描述主题
1
kafka-topics.bat -describe -zookeeper localhost:2181 -topic [topic name]
  • 从头读取消息
1
kafka-console-consumer.bat -zookeeper localhost:2181 -topic [topic name] -from-beginning
  • 删除主题
1
kafka-run-class.bat kafka.admin.TopicCommand -delete -topic [topic_to_delete] -zookeeper localhost:2181
  • 查看topic的详细信息
1
./kafka-topic.sh -zookeeper localhost:2181 -describe -topic  [topic name]
  • 为topic增加副本
1
./kafka-reassign-partitions.sh -zookeeper localhost:2181 -reassignment-json-file json/partitions-to-move.json -execute
  • 为topic增加partition
1
./bin/kafka-topics.sh -zookeeper localhost:2181 -alter -partitions 20 -topic [topic name]
  • 下线broker
1
2
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper localhost:2181 broker [brokerId] --num.retries 3 --retry.interval.ms 60
shutdown broker