Kafka 如何在 Debian 上集群部署

513
2025/4/15 9:32:34
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 Debian 上部署 Kafka 集群需要以下几个步骤:

1. 准备工作

  • 多个节点:至少需要 3 台机器来部署 Kafka 和 Zookeeper,以确保集群具备高可用性。
  • Zookeeper 集群:Kafka 依赖 Zookeeper 进行集群协调,Zookeeper 必须先部署并正常运行。

2. 安装与配置 Zookeeper 集群

步骤 1:下载并解压 Zookeeper

在每台 Zookeeper 节点上执行以下命令:

wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.0-bin.tar.gz
tar -xvzf apache-zookeeper-3.7.0-bin.tar.gz
cd apache-zookeeper-3.7.0-bin

步骤 2:配置 Zookeeper

编辑 conf/zoo.cfg 配置文件,至少设置以下配置项:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=zk-node1:2888:3888
server.2=zk-node2:2888:3888
server.3=zk-node3:2888:3888

server.X 是 Zookeeper 集群节点的配置,28883888 是 Zookeeper 节点之间的通信端口。

步骤 3:启动 Zookeeper

在每个 Zookeeper 节点上启动:

bin/zkServer.sh start

检查每个节点的状态:

bin/zkServer.sh status

确保 Zookeeper 集群正常运行。

3. 安装与配置 Kafka Broker

步骤 1:下载并解压 Kafka

在每台 Kafka 节点上执行以下命令:

wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
tar -xvzf kafka_2.13-2.8.0.tgz
cd kafka_2.13-2.8.0

步骤 2:配置 Kafka Broker

编辑 config/server.properties 配置文件,以下是一些关键配置:

broker.id=1  # 每个节点必须有唯一的 Broker ID
listeners=PLAINTEXT://kafka-node1:9092  # 配置监听地址和端口
log.dirs=/var/lib/kafka/logs  # 存储 Kafka 日志的目录
zookeeper.connect=zk-node1:2181,zk-node2:2181,zk-node3:2181  # 配置 Zookeeper 集群地址

步骤 3:启动 Kafka Broker

在每个 Kafka 节点上启动 Kafka Broker:

bin/kafka-server-start.sh config/server.properties

此时 Kafka 会连接到 Zookeeper 并成为集群的一部分。

步骤 4:验证 Kafka 集群状态

使用以下命令列出当前 Kafka 集群中的所有 Topic:

bin/kafka-topics.sh --list --zookeeper zk-node1:2181

如果配置正确,命令会列出 Kafka 集群中现有的所有 Topic。

4. 配置集群:分区与副本

Kafka 通过分区和副本机制来实现数据的高可用性和负载均衡。可以在创建 Topic 时指定分区数和副本数。例如,创建一个新的 Topic,3 个副本,3 个分区:

bin/kafka-topics.sh --zookeeper zk-node1:2181 --create --topic test --replication-factor 3 --partitions 3

5. 常用命令总结

  • 查看所有 Topic
    ./kafka-topics.sh --zookeeper localhost:2181 --list
    
  • 查看所有 Topic 详情(副本、分区、ISR等)
    ./kafka-topics.sh --zookeeper localhost:2181 --describe
    
  • 查看某个 Topic 详情
    ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
    
  • 创建 Topic,3 副本,3 分区
    ./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 3
    
  • 调整分区数量
    ./kafka-topics.sh --alter --zookeeper localhost:2181 --topic test --partitions 5
    

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Debian MySQL性能瓶颈如何突破