在CentOS上配置Kafka的步骤如下:
首先,确保你的CentOS系统上已经安装了Java运行环境。可以使用以下命令来安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel
安装完成后,验证Java是否安装成功:
java -version
从Apache Kafka官网下载所需版本的Kafka安装包,然后上传到你的CentOS服务器并解压。例如,下载kafka_2.12-3.5.2.tgz
并解压到/usr/local/kafka
目录:
cd /usr/local
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
mv kafka_2.12-3.5.2 kafka
进入Kafka的配置目录config
,编辑server.properties
文件,主要修改以下几项配置:
broker.id
: 声明当前Kafka服务器在集群中的唯一ID,通常设置为0。listeners
: 声明当前Kafka服务器需要监听的端口号,例如listeners=PLAINTEXT://your_server_ip:9092
。host.name
: Kafka服务器的主机名,通常设置为服务器的IP地址。log.dirs
: Kafka存放日志数据的目录,例如/usr/local/kafka/kafka-logs
。zookeeper.connect
: Kafka服务器连接的Zookeeper地址,例如zookeeper.connect=localhost:2181
。在另一个终端窗口中启动Zookeeper服务:
cd /usr/local/kafka/bin
./zookeeper-server-start.sh ../config/zookeeper.properties
在另一个终端窗口中启动Kafka服务:
./kafka-server-start.sh ../config/server.properties
使用Kafka提供的命令行工具创建一个Topic:
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
使用Kafka自带的生产者工具发送消息,并使用消费者工具接收并显示消息,以验证Kafka是否正常工作:
发送消息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
接收消息:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
为了确保Kafka服务在系统重启后自动启动,需要创建systemd服务文件。创建/etc/systemd/system/kafka.service
文件,并添加以下内容:
[Unit]
Description=Apache Kafka server
After=network.target zookeeper.service
[Service]
Type=simple
User=kafka
Group=kafka
WorkingDirectory=/usr/local/kafka
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
同样地,创建/etc/systemd/system/zookeeper.service
文件,并添加以下内容:
[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=simple
User=zookeeper
Group=zookeeper
WorkingDirectory=/usr/local/kafka
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
然后,启用并启动这些服务:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
确保防火墙允许Kafka使用的端口(如9092和2181):
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo firewall-cmd --reload
至此,你已经在CentOS系统上成功配置了Kafka。可以通过创建Topic、发送和接收消息来验证其功能。