如果你想在没有Zookeeper的情况下运行Kafka,可以使用Kafka的KRaft模式(Kafka Raft)。以下是一个不依赖Zookeeper的Kafka部署示例:

示例:在KRaft模式下部署Kafka

1. 下载Kafka

从Kafka的官方网站下载最新版本的Kafka(例如kafka_3.7.0)。

2. 配置KRaft模式

解压下载的Kafka文件,然后配置Kafka以启用KRaft模式:

  • 解压Kafka:将下载的文件解压到某个目录,例如/usr/local/kafka
  • 初始化存储目录:在Kafka的安装目录下执行以下命令,初始化KRaft元数据目录(例如/var/lib/kafka):
bin/ format -t <uuid> -c config/kraft/server.properties
  • 其中,<uuid> 可以使用 uuidgen 命令生成。例如:
uuidgen
3. 配置Kafka

修改Kafka的配置文件config/kraft/server.properties,配置示例:

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
log.dirs=/var/lib/kafka-logs
4. 启动Kafka

在Kafka的安装目录下执行启动脚本:

cd /usr/local/kafka
bin/ config/kraft/server.properties
5. 创建Topic

使用Kafka提供的命令行工具创建一个Topic,例如名为test-topic

bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
6. 生产和消费数据

测试生产者和消费者:

  • 创建生产者:
bin/ --topic test-topic --bootstrap-server localhost:9092

然后输入一些消息,如“Hello Kafka”。

  • 创建消费者:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092

你应该会看到生产者发送的消息显示在消费者的控制台中。