#python #apache-kafka #kafka-producer-api
#питон #апач-кафка #kafka-producer-api
Вопрос:
У меня есть JSON размером 4,6 ГБ со следующей структурой:
[ {...}, {...}, ... ]
Я хочу, чтобы код python прочитал этот JSON и записал их в тему Кафки с 16 разделами как можно больше.
Одна из проблем заключается в чтении этого большого JSON без исчерпания памяти. (использование расщепления и генераторов приходит на ум в качестве жизнеспособных решений). И вторая задача-максимизировать эффективность производителей.
Я пробовал несколько решений, но не могу добиться скорости записи более 15 Мбит/с. [Я использую python-kafka
библиотеку, которая не является самой производительной библиотекой python для кафки]
Комментарии:
1. Максимальный размер сообщения по умолчанию для Kafka составляет 1 МБ. Как тебе это передают?
2. Несколько дней назад у меня был стендовый тест на массовое движение. Кластер kafka имеет 5 брокеров на экземпляре c5.4xlarge AWS ec2 и производителя/потребителя на экземпляре c5.xlarge. Мой результат-максимальная пропускная способность от 1 производителя/потребителя составляет около 12 Мбит/с при считывании и 30 Мбит/с. Когда я использую c5.2xlarge для производителя/потребителя, пропускная способность составляет около 15 МБ/с записи. Поэтому, если кластер кафки имеет достаточную пропускную способность, я думаю, что это гораздо больше зависит от вычислительной мощности производителей, пропускной способности сети и конфигураций производителей. Я использовал ksql-datagen для тестирования производителя.