在Ubuntu上配置Kafka以实现稳定性,需要关注以下几个关键步骤和配置:
首先,确保系统上安装了Java运行环境。推荐使用OpenJDK 8或更高版本。
sudo apt update
sudo apt install openjdk-8-jdk
java -version
Kafka依赖于Zookeeper进行集群管理和协调。
wget https://downloads.apache.org/zookeeper/zookeeper-3.5.20/apache-zookeeper-3.5.20-bin.tar.gz
tar -xzf apache-zookeeper-3.5.20-bin.tar.gz
sudo mv apache-zookeeper-3.5.20 /usr/local/zookeeper
编辑 /usr/local/zookeeper/conf/zoo.cfg 文件,设置 dataDir 和 server.X(X是每个Zookeeper节点的ID)。
sudo vi /usr/local/zookeeper/conf/zoo.cfg
# 示例配置
tickTime=2000
dataDir=/usr/local/zookeeper/data
clientPort=2181
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
cd /usr/local/zookeeper/bin
./zkServer.sh start
wget https://downloads.apache.org/kafka/2.8.0/kafka_2.12-2.8.0.tgz
tar -xzf kafka_2.12-2.8.0.tgz
sudo mv kafka_2.12-2.8.0 /usr/local/kafka
编辑 /usr/local/kafka/config/server.properties 文件,设置以下关键配置:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/usr/local/kafka/logs
zookeeper.connect=localhost:2181
sudo mkdir -p /usr/local/kafka/logs
cd /usr/local/kafka/bin
./zookeeper-server-start.sh config/zoo.cfg
./kafka-server-start.sh config/server.properties
创建Kafka服务文件:
sudo nano /etc/systemd/system/kafka.service
添加以下内容:
[Unit]
Description=Apache Kafka Server
After=network.target zookeeper.service
[Service]
Type=forking
User=root
Group=root
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
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=on-failure
[Install]
WantedBy=multi-user.target
重新加载systemd配置并启动Kafka服务:
sudo systemctl daemon-reloads
sudo systemctl start kafka
sudo systemctl enable kafka
如果配置Kafka集群,确保每个节点的 broker.id 唯一。在每个节点上编辑 config/server.properties 文件,设置不同的 broker.id。启动所有Kafka节点:
./bin/kafka-server-start.sh config/server.properties
在 server.properties 文件中添加以下配置:
listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.trustStore.location=/path/to/truststore.jks
ssl.trustStore.password=truststore-password
ssl.keyStore.location=/path/to/keystore.jks
ssl.keyStore.password=keystore-password
ssl.key.password=key-password
启用SASL认证,配置 server.properties 文件:
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAINTEXT
sasl.enabled.mechanisms=SCRAM-SHA-256
kafka-topics.sh、kafka-console-consumer.sh 等进行监控和调试。通过以上步骤和配置,可以在Ubuntu上实现一个稳定且安全的Kafka集群。确保定期备份配置文件和数据,并进行必要的测试以验证集群的稳定性和性能。