Использование PyKafka Api - PullRequest
       27

Использование PyKafka Api

0 голосов
/ 21 февраля 2019

Я новичок в Kafka и PyKafka. Я знаю, что производитель и потребитель сделаны в PyKafka с помощью приведенного ниже кода.

from pykafka import KafkaClient
client = KafkaClient("localhost:9092")

topic = client.topics["topicname"]
producer = topic.get_producer()
consumer = topic.get_simple_consumer()

Я хочу знать, что такое KafkaClient и как онпомощь в создании производителя и потребителя.

Я читал, что мы можем создать кластер и брокер, также используя client.cluster и client.broker, но я не могу понять использование client здесь.

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

pykafka.KafkaClient является корневым объектом API PyKafka, предоставляя интерфейс для брокеров Kafka, а также возможность создавать экземпляры потребителей и производителей.KafkaClient можно представить как представление совокупности взаимодействия одного процесса Python с данным кластером Kafka.Прямого сравнения между KafkaClient и любой из концепций, упомянутых в официальной документации Kafka, нет.

Теоретически вполне возможно спроектировать клиентскую библиотеку Python Kafka, в которой нет такого класса "клиент", какKafkaClient.Мы решили не делать этого, так как, по нашему мнению, один корневой класс обеспечивает более понятный и понятный интерфейс, чем пакет различных классов.

0 голосов
/ 21 февраля 2019

Чтобы упростить условия, замените Kafka на "сервер".

Вы взаимодействуете с серверами с клиентами .

В частности, для взаимодействия с Кафкой вы отправляете сообщения темам через производителей и получаете сообщения с потребителями .


Я не знаю эту библиотеку, но .broker и .cluster на самом деле не "создают брокер / кластер Kafka", а только устанавливают соединение с существующей,из которого вы можете выполнить более поздние команды.

Вам нужно client. для этих вызовов функций, потому что клиент является оберткой вокруг обоих

Чтобы понять, почему он структурировантаким образом, вы должны спросить самих разработчиков

...