以下是在Ubuntu上配置Kafka的步骤:
安装Java环境
sudo apt update
sudo apt install openjdk-8-jdk # 推荐OpenJDK 8
java -version # 验证安装
安装Zookeeper(Kafka依赖)
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz
sudo mv apache-zookeeper-3.8.0 /usr/local/zookeeper
zoo.cfg:sudo vi /usr/local/zookeeper/conf/zoo.cfg
# 修改以下内容:
dataDir=/var/lib/zookeeper
clientPort=2181
sudo /usr/local/zookeeper/bin/zkServer.sh start
sudo netstat -nap | grep 2181 # 验证端口
安装Kafka
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka
sudo mkdir -p /usr/local/kafka/logs
配置Kafka
编辑server.properties:
sudo vi /usr/local/kafka/config/server.properties
# 关键配置:
broker.id=0 # 集群中唯一ID
listeners=PLAINTEXT://0.0.0.0:9092 # 监听地址
advertised.listeners=PLAINTEXT://your_server_ip:9092 # 对外可访问地址
log.dirs=/usr/local/kafka/logs
zookeeper.connect=localhost:2181
启动Kafka
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
/etc/systemd/system/kafka.service,内容参考,然后执行:sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
验证与测试
sudo netstat -tulnp | grep 9092
# 创建Topic
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic test --partitions 1 --replication-factor 1
# 生产者发送消息
sudo /usr/local/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
# 消费者接收消息
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
注意:
broker.id唯一,并正确配置listeners和advertised.listeners。