У нас есть система, которая обрабатывает много файлов на постоянной основе.Грубо говоря, около 3 миллионов файлов в день, размер которых может варьироваться от нескольких килобайт до 50 МБ.Эти файлы проходят несколько различных этапов обработки, начиная с момента их получения и заканчивая их потреблением, в зависимости от выбранного пути.Из-за содержимого и формата этих файлов они НЕ могут быть разбиты на более мелкие куски.
В настоящее время рабочий процесс, по которому эти файлы перемещаются, является жестким и определяется кодом с фиксированными входами и выходами (во многих случаяхгде один подписчик становится издателем нового набора файлов).Это отсутствие гибкости начинает вызывать у нас проблемы, поэтому я смотрю на какое-то решение паб / саб для того, чтобы справиться с новыми требованиями.
Большинство традиционных решений для пабов / субподразделений содержат данные в фактической полезной нагрузке, но большие потенциальные размеры файлов превышают пределы многих платформ обмена сообщениями.Кроме того, у нас есть несколько платформ: файлы проходят через уровни Linux и Windows в зависимости от их пути.
Есть ли у кого-нибудь какие-либо рекомендации по проектированию и / или реализации с учетом следующих целей?
1.Мультиплатформенность как для пабов, так и для подпрограмм (Linux и Windows)
2. Поддержка постоянного хранения / хранения и пересылки
3. Может обрабатывать большие полезные нагрузки событий и соответствующим образом очищаться после обслуживания всех подписчиков
4.Маршрутизация / рабочий процесс выполняется через конфигурацию
5. Подписчики могут подписаться на отфильтрованный набор опубликованных событий на основе изменяющихся критериев (например, только дать мне файлы определенного типа)
Я сделал кучууглубившись в ряд реализаций сервисной шины и MQ, но не смог достаточно развить подход проектирования, чтобы правильно оценить, какие инструменты наиболее целесообразны.Спасибо за любой вклад.