Kafka安装教程

一、Kafka简介

Kafka 是一种高性能、分布式、持久化的消息系统,最初由LinkedIn开发,并作为开源项目贡献给了Apache软件基金会。它被设计用于处理大规模的数据流,提供了可靠的消息传递机制,支持水平扩展,以及具备高吞吐量和低延迟的特性。最初使用的是Apache的ZooKeeper来进行协调和管理,但自 Kafka_v2.8.0 版本开始,逐渐引入了 KRaft (Kafka’s Replicated Atomic Fetch-Translate)协议,使 Kafka 可以在不依赖外部ZooKeeper的情况下实现复制和协调,减少对 ZooKeeper 的依赖。

二、SpringBoot版本兼容参照

Spring Integration Kafka 2.0 之前的版本早于 Spring for Apache Kafka 项目,因此并非基于它,所以就不在此列出了,更多详情可参考Spring-Kafka官网

Spring for Apache Kafka 版本 Apache Kafka 版本的 Spring 集成 kafka-clients Springboot
3.1.x 6.2.x 3.6.0 3.2.x
3.0.x 6.0.x/6.1.x 3.3.2至3.6.0 3.0.x/3.1.x
2.9.x 5.5.x 3.2.3至3.6.0 2.7.x(非托管)
2.8.x 5.5.x 3.0.0 2.6.x 或 2.7.x(生命周期结束)
2.7.x 5.5.x 2.7.0 - 2.8.1 2.4.x 或 2.5.x(生命周期结束)
2.6.x 5.3.x 或 5.4.x 2.6.0 - 2.8.1 2.3.x 或 2.4.x(生命周期结束)
2.5.x 3.3.x 2.5.1 - 2.8.1 2.3.x(生命周期结束)
2.4.x 3.2.x 2.4.1 2.2.x(生命周期结束)
2.3.x 3.2.x 2.3.1 2.2.x(生命周期结束)
2.2.x 3.1.x 2.0.1、2.1.x、2.2.x 2.1.x(生命周期结束)
2.1.x 3.0.x 1.0.2 2.0.x(生命周期结束)
1.3.x 2.3.x 0.11.0.x、1.0.x 1.5.x(生命周期结束)

三、安装教程

  1. 官网安装Kafka

    由于Kafka_v2.8.1 不再依赖Zookeeper故无需安装

    image-20240204171004403

  2. 更改kafka的日志目录(可选)

    1
    2
    # `config/server.properties`文件中
    log.dirs=./logs
  3. 安装目录下cmd启动zookeeper

    1
    D:\kafka_2.13-2.8.1>.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
  4. 另起cmd启动kafka

    1
    D:\kafka_2.13-2.8.1>.\bin\windows\kafka-server-start.bat .\config\server.properties
  5. 另起cmd并在bin\windows目录下执行创建topic并启动生产者

    1
    2
    3
    4
    5
    6
    7
    #–replication-factor 1 : 表示创建一个通知队列
    #–partitions 1 :表示创建一个分片
    #–topic [主题名称] :该命令中创建了一个主题名称为`topic-test`的主题
    D:\kafka_2.13-2.8.1\bin\windows>kafka-topics.bat --create --bootstrap-server localhost:9092 -replication-factor 1 --partitions 1 --topic topic-test

    # 启动生产者
    D:\kafka_2.13-2.8.1\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic topic-test
    • 效果:

    image-20240204175118548

  6. 另起cmd并在bin\windows目录下执行创建消费者

    1
    D:\kafka_2.13-2.8.1\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topic-test
    • 效果:

    image-20240204183144647

  7. 可在nssm中挂载为Win服务来使用(可选),nssm安装教程

    Zookeeper的服务配置(目录自行替换),首次安装需在服务中自行启动服务

    image-20240205110504885

    Kafka的nssm服务配置,并在依赖设置中填写Zookeeper

    image-20240205110938579

    image-20240205111307047

四、常用命令

Windows

以下均为Windows下的命令,并在Kafka/bin/windows目录下执行,{topic名称}自行替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#创建tocic-{topic名称}自行替换
kafka-topics.bat --create --bootstrap-server localhost:9092 -replication-factor 1 --partitions 1 --topic {topic名称}

#查询topic列表
kafka-topics.bat --list --zookeeper localhost:2181

#启动 Producer
kafka-console-producer.bat --broker-list localhost:9092 --topic {topic名称}

#启动 Consumer
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic {topic名称}

#topic的信息
kafka-console-consumer.bat --describe --zookeeper localhost:2181 --topic {topic名称}

Linux

以下均为Linux下的命令,并Kafka安装根目录下执行,{topic名称}自行替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#启动kafka,Tips:-daemon是为了让在后台运行
bin/kafka-server-start.sh -daemon config/server.properties

#创建tocic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic {topic名称}

#查询topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181

#启动 Producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic {topic名称}

#启动 Consumer
bin/kafka-console-consumer.sh --bootstrap-server local:9092 --topic {topic名称} --from-beginning

#topic的信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic {topic名称}