memorystore и экземпляры в разных регионах (GCP) - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю приложение чата в React Native, а бэкэнд находится в Node.JS Я использую GKE для развертывания кода сервера.

Я использую облако sql postgresql, соединяясь с внутренним IP. Это работает. Я также использую Memorystore (Redis). Вот проблема.

Для автоматического масштабирования я планирую получить несколько кластеров GKE в разных регионах (на данный момент, europe-west1 и us-central1). Я настроил балансировщик нагрузки с одним бэкэндом, содержащим все группы экземпляров. Я не знаю, это правильное / идеальное решение, но оно работает. Проблема заключается в том, что вы можете подключиться к базе данных Redis только из экземпляра в том же регионе. Если я использую use-central1 в качестве региона для своего экземпляра memorystore, я не могу подключиться к нему через виртуальные машины в кластере eu, который я создал.

Как лучше всего решить эту проблему? Я создал дополнительную виртуальную машину в том же регионе, что и экземпляр redis, с haproxy, настроенным для использования в качестве обратного прокси-сервера для memorystore, и таким образом я могу подключаться к базе данных redis через все экземпляры, независимо от того, в каком регионе они находятся в. Но я не знаю, является ли это правильным решением?

РЕДАКТИРОВАТЬ:

Я использую websockets (socket.io) для сообщений чата. Поскольку я планирую использовать несколько серверов, мне нужна централизованная база данных для хранения (ссылок на) идентификаторов сокетов, чтобы пользователи могли отправлять сообщения пользователям, которые подключены к другим серверам.

Я думаю, что redis является правильным решением по ряду причин:

  • Я могу использовать socket.io-redis для хранения идентификаторов сокета на redis
  • быстрое время ответа
  • I не знаю, сколько данных хранится, но это точно не МБ

Я использую базу данных postgresql для хранения другой информации (например, имени пользователя, паролей), но, похоже, мне, что Redis является гораздо лучшим решением для приложений реального времени.

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