温馨提示×

Ubuntu Kafka如何进行集群部署

小樊
73
2025-03-15 08:39:11
栏目: 智能运维

在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.idlistenerslog.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
      

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集群的机器。

0