在CentOS上配置和调优Apache Kafka涉及多个步骤,包括安装、配置、优化以及监控。以下是一个详细的指南:
sudo yum install java-1.8.0-openjdk-devel -y
验证Java安装成功:
java -version
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 /opt/kafka
sudo firewall-cmd --zone public --add-port 9092/tcp --permanent
sudo firewall-cmd --zone public --add-port 2181/tcp --permanent
sudo firewall-cmd --reload
config
,修改 server.properties
文件以适应你的需求。以下是一些关键配置项:broker.id
:每个Kafka broker的唯一标识。listeners
:Kafka监听的地址和端口。log.dirs
:Kafka日志存放的目录。zookeeper.connect
:Zookeeper的地址。示例配置:
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
nohup /opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties &
nohup /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
/opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
/etc/sysctl.conf
文件来实现。ulimit -n
设置足够大,以避免打开文件描述符过多的问题。vm.max_map_count
以避免内存溢出。num.replica.fetchers
和 replica.lag.time.max.ms
,以优化副本同步效率。-Xmx
和 -Xms
参数来分配足够的堆内存,避免频繁的垃圾回收导致的停顿。在进行任何配置更改之前,建议先在测试环境中验证其效果,以确保不会对生产环境造成不良影响。