在CentOS环境下配置Kafka的步骤如下:
首先,确保你的系统上安装了Java。可以使用以下命令安装OpenJDK:
sudo yum install java-1.8.0-openjdk-devel -y
安装完成后,验证Java安装:
java -version
从Apache Kafka官网下载适合的版本,例如Kafka 3.5.2:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
解压并移动到指定目录:
tar -zxvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
Kafka依赖Zookeeper,因此需要先配置Zookeeper。
编辑Zookeeper配置文件:
cd /opt/kafka/config
nano zookeeper.properties
配置数据存放位置和客户端端口等参数:
dataDir=/usr/local/kafka/zookeeper
clientPort=2181
启动Zookeeper服务:
/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties
编辑Kafka配置文件:
cd /opt/kafka/config
nano server.properties
配置以下关键参数:
broker.id: 每个Kafka broker的唯一标识。listeners: Kafka监听的地址和端口。advertised.listeners: Kafka对外暴露的地址和端口。log.dirs: Kafka日志文件的存储路径。zookeeper.connect: Zookeeper的地址和端口。示例配置:
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
在Kafka的bin目录下,使用以下命令启动Kafka服务:
/opt/kafka/bin/kafka-server-start.sh config/server.properties
创建一个测试主题:
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
发送和接收消息:
生产者发送消息:
/opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
消费者接收消息:
/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
如果需要从外部访问Kafka,确保防火墙允许9092端口的流量:
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
如果SELinux启用,可能需要调整相关策略以允许Kafka正常运行:
sudo setsebool -P httpd_can_network_connect 1