подключить к герою кафку инстанс с кафкой-питоном извне героку - PullRequest
0 голосов
/ 24 мая 2018

Я установил экземпляр heroku kafka, и я пытаюсь подключиться к нему с помощью приемника Python.У меня есть окружение heroku в файле с именем .env, для которого нужно перейти heroku config -s > .env, а затем загрузить и экспортировать его перед запуском этой программы на python:

import os

from kafka import KafkaConsumer

for variable in ['KAFKA_TRUSTED_CERT', 'KAFKA_CLIENT_CERT', 'KAFKA_CLIENT_CERT_KEY']:
    with open(f'{variable}.txt', "w") as text_file:
        print(os.environ[variable], file=text_file)

consumer = KafkaConsumer('test-topic',
                         bootstrap_servers=os.environ['KAFKA_URL'],
                         security_protocol="SSL",
                         ssl_certfile="KAFKA_CLIENT_CERT.txt",
                         ssl_keyfile="KAFKA_CLIENT_CERT_KEY.txt"
)
for msg in consumer:
    print (msg)

Я не смог найти параметры, которые выглядели так, как ониможет загружать сертификаты из переменной, поэтому я помещаю их все в файлы при запуске программы.

Когда я запускаю программу, она создает временные файлы и не жалуется, но не печатает никакихmessages.

Когда я пишу в тему, используя heroku cli, как это

heroku kafka:topics:write test-topic "this is a test"

клиент python не печатает сообщение, но я могу увидеть сообщение, набрав

heroku kafka:topics:tail test-topic

Кто-нибудь знает, чего мне не хватает в потребительской конфигурации Python?

1 Ответ

0 голосов
/ 15 января 2019

В официальной документации Heroku Kafka:

https://devcenter.heroku.com/articles/kafka-on-heroku#using-kafka-in-python-applications

говорится, что использование помощника Кафки выгодно.Если вы посмотрите на исходный код:

https://github.com/heroku/kafka-helper/blob/master/kafka_helper.py

, то увидите, что они записывают переменные Kafka в файлы и создают ssl_context.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...