是否有任何标准来定义Kafka主题集?

时间:2017-05-15 23:19:03

标签: apache-kafka

可以通过命令行工具或API创建Kafka主题。

在存在多个主题和多个环境(dev / qa / prod等)的大型系统中,有必要控制主题及其配置(分区等)的创建。例如,我们可能希望在源代码控制下维护一个shell脚本文件,该文件检查某个主题是否已经存在,如果它不存在则创建它。然后可以将相同的脚本应用于每个连续的环境(可能自动作为CI / CD的一部分)来创建或修改所需的主题。

是否有用于维护Kafka主题拓扑的标准文件格式或工具?

1 个答案:

答案 0 :(得分:0)

Kafka没有提供开箱即用的脚本,但你可以编写一个简单的SHELL脚本来实现它,如下所示:

#!/bin/bash
TOPIC=$1
ZK_CONNECT=localhost:2181
KAFKA_PATH=<your Kafka install directory>
LIST=`$KAFKA_PATH/bin/kafka-topics.sh --zookeeper $ZK_CONNECT --list`
arr=$(echo $LIST|tr " ", "\n")
for each in ${arr[*]}
do
    if [[ $each == $TOPIC ]]; then 
            echo "Already exists..."
            exit
    fi
done

$KAFKA_PATH/bin/kafka-topics.sh --zookeeper $ZK_CONNECT --create --topic \
    $TOPIC --partitions <num_partitions> --replication-factor <num_replicas>