在CentOS上稳定运行Kafka需要考虑多个方面,包括安装、配置、优化、高可用性以及监控。以下是详细的步骤和建议:
安装Java环境:Kafka依赖于Java,首先确保系统上安装了Java。可以使用以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk
下载并解压Kafka:从Apache Kafka官网下载适合的版本,例如Kafka 3.5.2。使用wget命令下载并解压:
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
cd kafka_2.12-3.5.2
配置环境变量:将Kafka的bin目录添加到系统的PATH中,编辑/etc/profile文件:
export KAFKA_HOME=/path/to/your/kafka_2.12-3.5.2
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
配置Zookeeper(如果使用Kraft模式则不需要):
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/zookeeper-3.8.0-bin.tar.gz
tar -xzf zookeeper-3.8.0-bin.tar.gz
export ZK_HOME=/path/to/your/zookeeper-3.8.0
export PATH=$PATH:$ZK_HOME/bin
source /etc/profile
配置Kafka:进入Kafka的config目录,编辑server.properties文件。以下是一些基本的配置项:
broker.id=1
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
启动Kafka服务:
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
网络和io操作线程配置优化:
num.network.threads=cpu核数+1
.threads=cpu核数*2,最大不超过3倍
log数据文件刷盘策略:
log.flush.interval.messages=10000
log.flush.interval.ms=1000
日志保留策略配置:
log.retention.hours=72
log.segment.bytes=1073741824
replica复制配置:
num.replica.fetchers=总核数的50%的1/3
replica.fetch.min.bytes=1MB
replica.fetch.max.bytes=5MB
replica.fetch.wait.max.ms=1000
通过以上步骤和建议,可以在CentOS上实现Kafka的稳定运行。确保在配置过程中遵循最佳实践,并根据实际需求进行调整和优化。