Я проектирую систему, в которой несколько пользователей будут загружать большой объем данных.Мой первоначальный пример - 100 пользователей, загружающих 100 МБ каждый день.
Мне нужно получить данные, вставить их в базу данных, обработать данные в базе данных (ETL) и затем использовать «полированные» данные для анализа..
Загруженные файлы будут получены кусками по 65 Кб (первоначальный дизайн).
Чтобы избежать узких мест, я думаю о создании этого с использованием MSMQ, где я помещаю данные в MQ, а затем передаю их различным «программам / инструментам», которые будут обрабатывать данные и, в свою очередь, сигнализировать ETLинструмент через MSMQ, чтобы начать делать свое дело.
В качестве альтернативы я думаю о "линейном" подходе:
--> receive data
--> save data to sql
--> wait for upload finish (run the two above until no more chunks)
--> signal the ETL to do its thing
--> When ETL is done report "Done" to callee
Какой подход кажется лучшим?Есть ли альтернативы для изучения?Цель состоит в том, чтобы иметь несколько тысяч пользователей ... Насколько я вижу, такой подход блокирует клиент / загрузчик.