Spring boot: Как лучше организовать работу с файлами в микросервисах?

Нужно сохранять, передавать файлы между микросервисами. Вижу несколько вариантов - поднять стороннее хранилище, условно s3, и заточить под него один сервис. В этом случае целиком файл между сервисами будет передаваться только при сохранении(обновлении). Или научить каждый сервис работать с s3 и передавать только ссылки? В данный момент у нас все файлы хранятся в бд, что по моему как то не очень. И получается они летают целиком от файлового сервиса к другим. По поводу этого есть вопрос - стоит ли сохранять файл после получения от файлового сервиса и перед отдачей клиенту? Мне видится, что если не сохранять, то при нагрузке можно получить outofmemory. При сохранении, возможно, fileinputstream будет порционно читать данные с диска и jvm сможет лучше разрулить ситуацию с нехваткой памяти(это моё предположение). Посоветуйте оптимальный вариант? На данный момент этот вопрос не критичен, но с ростом нагрузки, наверняка станет проблемным местом.


Ответы (0 шт):