Как разделить кэш между несколькими экземплярами Google App Engine, каждый из которых имеет несколько виртуальных ЦП? - PullRequest
0 голосов
/ 10 ноября 2018

СИТУАЦИЯ:

Я пытаюсь внедрить кэширование для сторонних API-запросов с ограниченной скоростью, которые должен делать мой веб-сайт.

Видимо, основные решения, такие как:

https://www.npmjs.com/package/node-cache

не будет даже разделять кеш между процессорами, а тем более между экземплярами?

Это правильно?

А если это так, как я могу разделить кеш между экземплярами, чтобы у меня был один унифицированный кеш для моего сайта между экземплярами?

После некоторого поиска в Google, кажется, Redis был бы решением. Но из того, что я собрал, я должен был бы разместить Redis на своем собственном выделенном экземпляре, чтобы кэш был уникальным для всех экземпляров виртуальных машин моего сайта?

Что делать, если экземпляр, на котором размещен Redis, перегружен и его также нужно автоматически масштабировать до нескольких экземпляров?


ВОПРОС:

Как я могу реализовать общий кеш между экземплярами виртуальных машин моего сайта?

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете добавить в свое приложение GAE стандартную службу среды 1-го поколения, которая будет:

  • выступает в качестве службы кэширования для ваших сервисов node.js (или другой стандартной среды или гибкой среды 2-го поколения) и, под капотом, использует сам сервис memcache GAE, доступный только в эти среды первого поколения.
  • может быть, даже сделать эти сторонние вызовы API с ограниченной скоростью, вероятно, будет проще правильно координировать кэшированные результаты таким образом
  • быть настроен на автоматическое масштабирование для решения проблемы масштабируемости
...