以下是在Ubuntu上完美结合Kafka的关键步骤,涵盖环境准备、安装配置及优化要点:
安装Java环境
Kafka依赖Java运行,推荐使用OpenJDK 11+:
sudo apt update && sudo apt install openjdk-11-jdk -y
java -version # 验证安装
配置系统参数(可选)
sudo nano /etc/security/limits.conf
添加:* soft nofile 65536
* hard nofile 65536
vm.swappiness
)以提升性能。下载与解压Kafka
从官网获取最新版本,推荐使用wget
直接下载:
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xzf kafka_2.13-3.6.0.tgz
sudo mv kafka_2.13-3.6.0 /usr/local/kafka
配置Zookeeper(Kafka依赖组件)
sudo mkdir -p /var/lib/zookeeper
sudo nano /usr/local/kafka/config/zookeeper.properties
设置:dataDir=/var/lib/zookeeper
clientPort=2181
sudo /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
配置Kafka Broker
server.properties
关键参数:sudo nano /usr/local/kafka/config/server.properties
broker.id=0 # 每个节点唯一标识
listeners=PLAINTEXT://<服务器IP>:9092 # 监听地址
log.dirs=/var/lib/kafka/logs # 日志存储路径
zookeeper.connect=localhost:2181 # Zookeeper地址
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
多节点集群配置
broker.id
唯一,listeners
指向正确IP。kafka-storage.sh
生成集群ID并同步至所有节点:sudo /usr/local/kafka/bin/kafka-storage.sh random-uuid
Topic创建与分区策略
sudo /usr/local/kafka/bin/kafka-topics.sh --create --topic test --replication-factor 3 --partitions 3 --zookeeper localhost:2181
安全与防火墙配置
# 在server.properties中添加:
ssl.keystore.location=/path/to/keystore.jks
ssl.truststore.location=/path/to/truststore.jks
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp
使用Kafka自带工具
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
sudo /usr/local/kafka/bin/kafka-consumer-groups.sh --describe --group <消费组名> --bootstrap-server localhost:9092
第三方监控方案
server.properties
中配置log.retention.hours
(默认168小时)和log.segment.bytes
(默认1GB),避免磁盘占满。num.network.threads
(网络线程数,默认3)和num.io.threads
(IO线程数,默认8),适应高吞吐场景。通过以上步骤,可在Ubuntu上实现Kafka的高效部署与稳定运行,满足生产级需求。