public static void CreateTopic(
            ZkClient zkClient,
            string topic,
            int partitions,
            int replicationFactor,
            Dictionary <string, string> topicConfig)
        {
            var brokerList       = ZkUtils.GetSortedBrokerList(zkClient);
            var replicaAssigment = AssignReplicasToBrokers(brokerList, partitions, replicationFactor);

            CreateOrUpdateTopicPartitionAssignmentPathInZK(zkClient, topic, replicaAssigment, topicConfig);
        }