在Ubuntu上部署Kafka集群涉及多个步骤,包括准备环境、配置Kafka和Zookeeper、启动服务以及验证集群状态。以下是一个详细的步骤指南:
1. 环境准备
- 安装Java:Kafka需要Java环境,推荐使用Java 8及以上版本。
sudo apt update sudo apt install openjdk-11-jdk -y
- 下载Kafka:从Apache Kafka官网下载最新版本的Kafka。
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
- 解压Kafka:将下载的压缩包解压到指定目录。
tar -xzvf kafka_2.12-3.6.2.tgz -C /usr/local/
2. 配置Zookeeper
- 创建Zookeeper目录:
sudo mkdir -p /usr/local/kafka/data sudo mkdir -p /usr/local/kafka/log
- 配置Zookeeper:
编辑
/usr/local/kafka/config/zookeeper.properties
文件,设置数据目录和客户端端口等参数。dataDir=/usr/local/kafka/data clientPort=2181
- 启动Zookeeper:
sudo /usr/local/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties
3. 配置Kafka
- 复制配置文件:为每个Kafka broker创建一个配置文件。
sudo cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-1.properties sudo cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-2.properties
- 修改配置文件:为每个broker配置唯一的
broker.id
、listeners
和log.dirs
等参数。- server-1.properties:
broker.id=1 listeners=PLAINTEXT://192.168.1.1:9092 log.dirs=/usr/local/kafka/data/kafka-logs-1
- server-2.properties:
broker.id=2 listeners=PLAINTEXT://192.168.1.2:9092 log.dirs=/usr/local/kafka/data/kafka-logs-2
- server-1.properties:
4. 启动Kafka
- 启动Kafka服务:在每个broker上启动Kafka服务。
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties
5. 验证集群
- 创建测试主题:
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.1.1:9092,192.168.1.2:9092 --replication-factor 2 --partitions 1 --topic test-topic
- 列出主题:
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server 192.168.1.1:9092,192.168.1.2:9092
- 生产消息:
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.1:9092,192.168.1.2:9092 --topic test-topic
- 消费消息:
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.1:9092,192.168.1.2:9092 --topic test-topic --from-beginning
6. 安全加固(可选)
- 配置SSL/TLS:为Kafka集群配置SSL/TLS加密。
- SASL认证:启用SASL认证以增强安全性。
- 访问控制列表(ACL):设置ACL以限制对特定主题的访问。
- 网络安全策略:使用VPC和安全组限制访问Kafka集群的机器。