Опубликовать сообщение в облачном кластере Confluent с помощью kafka-python

Я использую пакет kafka-python для публикации сообщений в объединенном облачном кластере kafka.

Мой код выглядит следующим образом:

    from kafka import KafkaProducer
    producer=KafkaProducer(
                    bootstrap_servers='pkc-epgnk.us-central1.gcp.confluent.cloud:9092',
                    security_protocol='SASL_SSL',
                    sasl_mechanism='PLAIN',
                    ssl_certfile='/usr/local/etc/openssl/cert.pem',
                    sasl_plain_username='[api_key]',
                    sasl_plain_password='[api_secret]')

    producer.prodcue(topic='file-ingestion',key=b'',value=b'test')

Выполняя приведенный выше код, я получаю следующую ошибку:

kafka.errors.NoBrokersAvailable: NoBrokersAvailable

В руководстве по confluent kafka мне было предложено установить следующие значения для производителя C/C++; однако я не могу установить все значения производителем kafka-python

bootstrap.servers=pkc-epgnk.us-central1.gcp.confluent.cloud:9092
api.version.request=true
broker.version.fallback=0.10.0.0
api.version.fallback.ms=0
sasl.mechanisms=PLAIN
security.protocol=SASL_SSL
ssl.ca.location=/usr/local/etc/openssl/cert.pem
sasl.username=<CLUSTER_API_KEY>
sasl.password=<CLUSTER_API_SECRET>

person Mahdi    schedule 25.01.2019    source источник
comment
@luckylucee вам удалось подключиться к confluent cloud kafka с пакетом kafka-python?   -  person Erik K    schedule 20.09.2019


Ответы (1)


Вместо этого вы можете использовать клиент confluent-kafka-python, чтобы установить эти свойства и улучшить интеграцию и протестировать поддержку между продуктами.

Пример кода из Github

from confluent_kafka import Producer, Consumer

p = Producer({
    'bootstrap.servers': '<ccloud bootstrap servers>',
    'broker.version.fallback': '0.10.0.0',
    'api.version.fallback.ms': 0,
    'sasl.mechanisms': 'PLAIN',
    'security.protocol': 'SASL_SSL',
    'sasl.username': '<ccloud key>',
    'sasl.password': '<ccloud secret>'
})
person OneCricketeer    schedule 25.01.2019
comment
это действительно не отвечает на вопрос, как это сделать с библиотекой kafka-python - person Erik K; 20.09.2019
comment
Итак, мы не можем подключиться к Confluent Kafka с помощью python kafka?? Кто-нибудь подключался с помощью пакета kafka-python? - person Arpan Sharma; 30.01.2020
comment
@Arpan Нет такой вещи, как Confluent Kafka. Все это Апач Кафка. Это единственная библиотека Python, которую я использовал, поэтому это мой ответ. Если у вас есть конкретная ошибка, пожалуйста, создайте свой собственный пост - person OneCricketeer; 30.01.2020
comment
@cricket_007 Я использовал обе библиотеки kafka-python и confluent-kafka. С python-kafta я получаю NoBrokerAvailable, как упоминалось в этом посте, а с пакетом confluent-kafka я могу подключиться. Как не странно!!! - person Arpan Sharma; 30.01.2020
comment
@ArpanSharma Похоже, у вас проблемы с сетью или сертификатом. Это не проблема Kafka или Confluent Cloud. - person OneCricketeer; 31.01.2020