Моя компания в настоящее время работает над принятием микросервисной архитектуры, но мы сталкиваемся с некоторыми проблемами роста (шок!) На этом пути. Одна из ключевых проблем, с которыми мы сталкиваемся, заключается в том, как передавать большие объемы данных между нашими различными службами.
Для справки у нас есть хранилище документов, которое служит хранилищем для любого документа, который нам может понадобиться обрабатывать в компании. Взаимодействие с указанным хранилищем осуществляется через службу, которая предоставляет клиенту уникальный идентификатор и место для потоковой передачи документа. Доступ к местоположению документа можно получить позднее с помощью поиска с указанным идентификатором.
Проблема в следующем: имеет ли смысл для всех наших микросервисов принимать этот уникальный идентификатор как часть своего API для взаимодействия с документами или нет? Мне это кажется по своей сути неправильным - сервисы больше не являются независимыми и зависят от сервиса хранилища документов. Хотя я и признаю, что это может упростить разработку API и, возможно, даже получить некоторый выигрыш в производительности, результирующая связь больше, чем уравновешивает преимущества.
Кто-нибудь знает, как радужные единороги (Netflix, Amazon, Google и т. Д.) Справляются с большими файлами / обменом данными между их сервисами?