Как создать новую тему с пикафкой с разделами и репликацией?

Я хочу иметь возможность программно создать тему в Kafka, используя pykafka. Я знаю, что доступ к TopicDict автоматически создаст тему, если таковой не существует, но я не знаю, как управлять количеством разделов / реплик с этим. Кроме того, у него есть неприятная ошибка, когда он заканчивается бесконечным циклом, если Кафка падает. В основном я хочу сделать что-то вроде следующего:

create_topic('mytopic', partitions=2, replicas=3)

2 ответа

Pykafka - это реализация Python для API производителя и потребителя Kafka, и вам нужно выполнить операцию, которая в Kafka выполняется с использованием другого API, API администрирования / операций (фактически группы Java-классов). Я не думаю, что у Pykafka есть API/ оболочка для этого. То, что вы можете наблюдать, является темой, автоматически созданной Kafka. Что вы можете сделать, это настроить с помощью свойств количество разделов и реплик по умолчанию для автоматически создаваемых тем.

Вы можете сделать это с subprocess

Если вы устанавливаете бинарные файлы Kafka, вы можете сделать что-то вроде этого

from pykafka import KafkaClient
import subprocess

client = KafkaClient(hosts="localhost:9092")

subprocess.Popen("PATH/TO/KAFKA/BINARY/kafka_2.11-1.0.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic testtopic --replication-factor 1 --partitions 10".split())
Другие вопросы по тегам