Как создать слой кэширования файлов в микросервисной / бессерверной архитектуре - PullRequest
0 голосов
/ 20 января 2019

Вот суть того, что я хочу:

  • Существует служба X, которую другие службы могут использовать для потоковой передачи файлов, которые хранит служба X. Например. GET / files / 8c267d1c-2b6d-4fe3-969f-4820fe8b3a9c , который возвращает содержимое foo.txt, может запрашиваться службами A, B, C, несколько раз для каждого.
  • Служба X должна быть реализована с использованием некоторой безсерверной технологии, такой как функции Azure
  • Очевидно, я хочу какой-то тип системы кэширования, чтобы мне не приходилось каждый раз передавать файл из его сохраненного местоположения. Вместо потока, состоящего из двух частей, например

A <------ Instance of X Application <----- X's storage (e.g. Azure Files)

было бы здорово иметь его как

A <------ [TBD]
  • Очевидно, я хочу, чтобы это масштабировалось
  • В идеале я хочу использовать готовые решения
  • В идеале, я не хочу предоставлять клиентской службе A, B, C механизм хранения для прямого доступа к ним.

Эти цели несовместимы?

1 Ответ

0 голосов
/ 21 января 2019

Не уверен, если вы уже рассмотрели CDN . На рынке довольно много провайдеров, и большинство из них распределены по всему миру. Многое зависит от того, как часто вы обновляете это содержимое. Если они не являются действительно статичными и часто обновляются, то CDN может не соответствовать цели.

Он позаботится о ваших первых двух целях, но CND имеет предопределенную и хорошо опубликованную архитектуру того, как он работает, поэтому не совсем уверен в том, что вы не указали механизм хранения. Вы можете контролировать политики доступа к этому содержимому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...