温馨提示×

kafka于centos如何精准配置

小樊
50
2025-09-17 21:40:14
栏目: 智能运维

一、环境准备

1. 安装Java环境

Kafka依赖Java 1.8及以上版本,使用OpenJDK安装:

sudo yum install java-1.8.0-openjdk-devel -y
# 验证安装
java -version

2. 安装Zookeeper

Kafka通过Zookeeper实现集群管理和Leader选举,需先部署Zookeeper:

# 下载并解压Zookeeper(以3.8.1为例)
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz
mv apache-zookeeper-3.8.1-bin /opt/zookeeper

# 配置Zookeeper数据目录
mkdir -p /data/zookeeper/{data,logs}
# 修改配置文件(/opt/zookeeper/conf/zoo.cfg)
dataDir=/data/zookeeper/data
clientPort=2181
# 启动Zookeeper
/opt/zookeeper/bin/zkServer.sh start

二、下载与解压Kafka

从Apache官网下载稳定版本(如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
mv kafka_2.12-3.5.2 /opt/kafka

三、核心配置(server.properties)

编辑/opt/kafka/config/server.properties,调整以下关键参数:

  • 唯一标识broker.id=0(集群中每个broker需唯一)
  • 监听配置
    listeners=PLAINTEXT://your_server_ip:9092  # 绑定服务器IP
    advertised.listeners=PLAINTEXT://your_server_ip:9092  # 客户端可见地址
    
  • 日志路径log.dirs=/data/kafka/logs(需提前创建目录并授权)
  • Zookeeper连接zookeeper.connect=localhost:2181(集群则用逗号分隔多个节点)
  • 高可用配置
    default.replication.factor=3  # 默认副本数(需>=2)
    min.insync.replicas=2         # 写操作需确认的最小副本数
    auto.create.topics.enable=false  # 禁止自动创建Topic(避免误操作)
    

四、启动与验证

1. 启动服务

# 启动Kafka(后台模式)
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

# 启动Zookeeper(若未配置开机自启)
/opt/zookeeper/bin/zkServer.sh start

2. 验证功能

  • 创建Topic
    /opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server your_server_ip:9092 --partitions 3 --replication-factor 3
    
  • 查看Topic列表
    /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server your_server_ip:9092
    
  • 生产与消费消息
    # 生产者
    /opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server your_server_ip:9092
    # 消费者(从开头读取)
    /opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server your_server_ip:9092
    

五、开机自启配置

创建systemd服务文件/etc/systemd/system/kafka.service

[Unit]
Description=Apache Kafka Server
After=network.target zookeeper.target

[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

启用并启动服务

sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

六、关键优化建议

1. 磁盘与性能

  • 日志保留:调整log.retention.hours=168(7天),避免磁盘爆满。
  • 日志段大小log.segment.bytes=1073741824(1GB),减少文件数量提升IO效率。
  • 线程配置num.io.threads=8(根据CPU核心数调整,建议2*核心数+1)。

2. 安全配置(可选)

  • SASL认证:在server.properties中添加:
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
    sasl.enabled.mechanisms=SCRAM-SHA-256
    
  • SSL加密:配置listeners=SSL://your_server_ip:9093,并设置证书路径。

七、常见问题排查

  • 端口未开放:使用firewall-cmd --add-port=9092/tcp --permanent开放端口。
  • 权限问题:确保log.dirs目录属主为kafka用户:chown -R kafka:kafka /data/kafka/logs
  • Zookeeper连接失败:检查zookeeper.connect地址是否正确,Zookeeper服务是否运行。

0