Что было бы хорошим способом разделить нагрузку?
Краткий ответ - использование пользовательских схем разбиения с достаточно большим количеством разделов. Скажем 100.
Или вы можете создать топи c для каждой компании, в зависимости от того, используете ли вы разные схемы записи для топи c
Много ли мы покупаем из данные из таблицы?
Ну, вы не можете запросить topi c так же легко, как таблицу, так что в этом есть преимущество ... Вы также можете использовать KTable и интерактивные запросы
Данные, с которыми мы работаем, JSON хранятся в БД
Я предполагаю, что вы не просто помещаете один столбец BLOB в базу данных (и вы не уточнили, какую базу данных вы используете Используете либо).
Лично я бы посоветовал вам использовать Avro и Kafka Connect для ввода тем в базы данных. Это рекомендуемое решение для такой задачи в API-интерфейсах Kafka, без представления других проектов, таких как Spark, или написания собственного кода базы данных
. Нам необходимо отслеживать состояние / ошибки, чтобы конечный пользователь мог знать о любых проблемах и выполнять действия по исправлению данных
Таблицы могут работать, но если вы можете записывать записи в таблицу, вы также можете записывать события в другую Kafka topi c и получать «уведомления» с этого