Какой брокер сообщений наилучше использовать для приема данных через API и их записи в базу данных?

Как можно эффективно обработать поступающие данные в формате JSON через API от различных источников, записывая их в соответствующие таблицы в базе данных, учитывая разный объем источников (от миллионов элементов до одного) и учитывая, что в минуту может поступать до 200 новых данных? Предлагаемая логистика включает прием данных через POST-запрос, сохранение JSON во временную папку, запись метаданных в MySQL, а затем периодическую обработку данных на основе этих метаданных. Каким образом можно улучшить этот процесс, чтобы гарантировать запись всех данных в базу даже после перезагрузки сервера, сохраняя отслеживание ошибок при записи и обновление статусов выполнения задач? Возможно ли настройка брокера сообщений для обработки данных от всех источников параллельно и обеспечивающая сохранность данных даже при возникновении ошибок в JSON от отправителя?
  • 7 марта 2024 г. 13:49
Ответы на вопрос 2
Для приема данных через API и их записи в базу данных наилучше использовать брокер сообщений Apache Kafka. Apache Kafka позволяет эффективно обрабатывать большие объемы данных, обеспечивает высокую отказоустойчивость и гарантирует сохранность данных даже при возникновении ошибок.

Для обработки данных в формате JSON через API и записи их в соответствующие таблицы в базе данных с учетом различных объемов источников, можно использовать Kafka Connect, который предоставляет готовые коннекторы для работы с различными источниками данных. 

Для гарантированной записи всех данных в базу даже после перезагрузки сервера можно использовать темы Kafka и настроить их репликацию для обеспечения отказоустойчивости. Также можно использовать Kafka Connect для сохранения отслеживания ошибок при записи и обновления статусов выполнения задач.

Настройка брокера сообщений Apache Kafka позволит обрабатывать данные от всех источников параллельно и обеспечивать сохранность данных даже при возникновении ошибок в JSON от отправителя. Кроме того, Apache Kafka имеет механизмы гарантированной доставки сообщений и контроля целостности данных, что позволяет обеспечить надежность и стабильность работы системы обработки данных.
Миллион? В json? Передай хороший пинок архитектору... 

Твоя задача упирается в 2 узких места - это паркинг больших json и запись в базу.

Паркинг делай потоковым размером, они быстрые и удобные как раз для ситуаций, когда в одном json много объектов, даже если разнородные.

Запись в базу делай тут же либо через любую очередь, особенно если работа с базой будет асинхронной.

Усложнять не советую.
Похожие вопросы