在Ubuntu上搭建Kafka集群是一个相对复杂的过程,需要仔细配置多个组件。以下是一个详细的步骤解析,基于多个来源的信息:
1. 环境准备
安装Java
Kafka依赖于Java,首先需要安装Java环境。
sudo apt update sudo apt install openjdk-8-jdk java -version
安装Zookeeper
下载并解压Zookeeper。
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz tar xvf zookeeper-3.4.6.tar.gz sudo mv zookeeper-3.4.6 /usr/local/zookeeper
配置Zookeeper:
sudo cat > /usr/local/zookeeper/conf/zoo.cfg << EOF tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 EOF
启动Zookeeper:
sudo /usr/local/zookeeper/bin/zkServer.sh start
2. 安装Kafka
下载Kafka
下载预编译的Kafka二进制文件。
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz tar -xzf kafka_2.12-3.6.2.tgz sudo mv kafka_2.12-3.6.2 /usr/local/kafka
配置Kafka
进入Kafka配置目录并编辑server.properties
文件。
cd /usr/local/kafka/config sudo cp server.properties server-1.properties sudo cp server.properties server-2.properties
修改以下配置:
broker.id
: 每个节点的唯一标识。listeners
: 监听地址和端口。advertised.listeners
: 节点对外的监听地址和端口。zookeeper.connect
: Zookeeper连接地址。
例如:
broker.id=1 listeners=PLAINTEXT://:9093 advertised.listeners=PLAINTEXT://192.168.1.100:9093 zookeeper.connect=192.168.1.100:2181
启动Kafka
在每台机器上启动Kafka服务:
sudo /usr/local/kafka/bin/kafka-server-start.sh config/server-1.properties & sudo /usr/local/kafka/bin/kafka-server-start.sh config/server-2.properties &
3. 验证安装
创建Topic
创建一个测试Topic以验证集群功能。
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.1.100:9093 --replication-factor 3 --partitions 1 --topic test-topic
发送和消费消息
使用Kafka自带的命令行工具测试消息发送和消费。
# 发送消息 sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.100:9093 --topic test-topic # 消费消息 sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9093 --topic test-topic --from-beginning
4. 注意事项
- 确保所有节点的
broker.id
唯一。 - 配置文件中的IP地址和端口在所有节点上保持一致。
- 启动Kafka服务时,确保Zookeeper已经启动。
- 在生产环境中,建议使用KRaft模式来管理Kafka集群,以避免对Zookeeper的依赖。
以上步骤提供了一个基本的Kafka集群搭建流程。根据具体需求和环境,可能还需要进行更多的配置和优化。