Как можно эффективно обработать поступающие данные в формате JSON через API от различных источников, записывая их в соответствующие таблицы в базе данных, учитывая разный объем источников (от миллионов элементов до одного) и учитывая, что в минуту может поступать до 200 новых данных? Предлагаемая логистика включает прием данных через POST-запрос, сохранение JSON во временную папку, запись метаданных в MySQL, а затем периодическую обработку данных на основе этих метаданных. Каким образом можно улучшить этот процесс, чтобы гарантировать запись всех данных в базу даже после перезагрузки сервера, сохраняя отслеживание ошибок при записи и обновление статусов выполнения задач? Возможно ли настройка брокера сообщений для обработки данных от всех источников параллельно и обеспечивающая сохранность данных даже при возникновении ошибок в JSON от отправителя?
Для приема данных через API и их записи в базу данных наилучше использовать брокер сообщений Apache Kafka. Apache Kafka позволяет эффективно обрабатывать большие объемы данных, обеспечивает высокую отказоустойчивость и гарантирует сохранность данных даже при возникновении ошибок. Для обработки данных в формате JSON через API и записи их в соответствующие таблицы в базе данных с учетом различных объемов источников, можно использовать Kafka Connect, который предоставляет готовые коннекторы для работы с различными источниками данных. Для гарантированной записи всех данных в базу даже после перезагрузки сервера можно использовать темы Kafka и настроить их репликацию для обеспечения отказоустойчивости. Также можно использовать Kafka Connect для сохранения отслеживания ошибок при записи и обновления статусов выполнения задач. Настройка брокера сообщений Apache Kafka позволит обрабатывать данные от всех источников параллельно и обеспечивать сохранность данных даже при возникновении ошибок в JSON от отправителя. Кроме того, Apache Kafka имеет механизмы гарантированной доставки сообщений и контроля целостности данных, что позволяет обеспечить надежность и стабильность работы системы обработки данных.
Миллион? В json? Передай хороший пинок архитектору...
Твоя задача упирается в 2 узких места - это паркинг больших json и запись в базу.
Паркинг делай потоковым размером, они быстрые и удобные как раз для ситуаций, когда в одном json много объектов, даже если разнородные.
Запись в базу делай тут же либо через любую очередь, особенно если работа с базой будет асинхронной.
Усложнять не советую.