在 Debian 上部署 Kafka 集群需要以下几个步骤:
在每台 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
编辑 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 集群节点的配置,2888
和 3888
是 Zookeeper 节点之间的通信端口。
在每个 Zookeeper 节点上启动:
bin/zkServer.sh start
检查每个节点的状态:
bin/zkServer.sh status
确保 Zookeeper 集群正常运行。
在每台 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
编辑 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 集群地址
在每个 Kafka 节点上启动 Kafka Broker:
bin/kafka-server-start.sh config/server.properties
此时 Kafka 会连接到 Zookeeper 并成为集群的一部分。
使用以下命令列出当前 Kafka 集群中的所有 Topic:
bin/kafka-topics.sh --list --zookeeper zk-node1:2181
如果配置正确,命令会列出 Kafka 集群中现有的所有 Topic。
Kafka 通过分区和副本机制来实现数据的高可用性和负载均衡。可以在创建 Topic 时指定分区数和副本数。例如,创建一个新的 Topic,3 个副本,3 个分区:
bin/kafka-topics.sh --zookeeper zk-node1:2181 --create --topic test --replication-factor 3 --partitions 3
./kafka-topics.sh --zookeeper localhost:2181 --list
./kafka-topics.sh --zookeeper localhost:2181 --describe
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
./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性能瓶颈如何突破