Рекомендуемый способ масштабирования firebase путем добавления областей [закрыто]

в настоящее время у меня есть 3 проекта firebase, используемые для приложения: live, beta, development

они обрабатывают соответствующие среды и находятся в зоне US.

в будущем, если приложение используется во всем мире, каков рекомендуемый способ масштабирования в ЕС / Азии + США? Мой первоначальный инстинкт-создать дополнительные проекты firebase, такие как live-eu, live-asia, но я вижу здесь проблему:

могут ли эти проекты использовать тот же идентификатор приложения, что и мои американские? Я не могу импорт данных из проекта US, как он имеет uid's там, конечно, они не будут работать с auth из других проектов? Но мне нужно разрешить пользователям переходить в другие регионы.

Я не смогу собрать аналитику из всех регионов в одном месте, а также правильным?

следовательно, вопрос, есть ли способ масштабировать / добавлять поддержку нескольких регионов в проекте firebase? Особенно интересуют firestore и облачные функции, так как это те, где латентность может быть уменьшенный.

1 ответов


Я спросил в комментариях, но не получил ответа, поэтому я предполагаю, что ваше приложение имеет интенсивную рабочую нагрузку для чтения. Для этих случаев, чтобы уменьшить задержку запросов, поступающих со всего мира, вы должны использовать CDN для кэширования статических файлов и ответов (т. е. использовать граничные местоположения и граничные вычисления). Для этого вам даже не нужно придерживаться Firebase (есть такие решения, как Akamai и CloudFront, которые могут соответствовать вашим потребностям и легко подключаться к вашему решению Firebase), но если вам нужно, посмотрите на Firebase Хостинг.

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

EDIT: Google недавно объявил Firestore -- они предлагают поддержку мульти-региона для лучшей доступности:

расположение в нескольких регионах является общим географическим районом, таким как Соединенные Штаты. Данные в расположении нескольких регионов реплицируются в нескольких регионах. В пределах региона данные реплицируются по зонам.

с точки зрения масштабируемости, это утверждение, которое они дали в блог:

Облако Firestore [...] построен на вершине того же облака Google инфраструктура, которая питает некоторые довольно популярные приложения. Таким образом, он сможет масштабироваться намного легче и с гораздо большей емкостью, чем база данных в реальном времени.

и с новой структурой запросов все запросы Cloud Firestore масштабируются до размера вашего результирующего набора , а не размера ваших данных. Это означает, что поиск 10 лучших ресторанов в Чикаго для приложения обзора ресторана займет столько же времени, имеет ли ваша база данных 300 ресторанов, 300 тысяч или 30 миллионов. Как любит говорить один инженер: "в Cloud Firestore невозможно создать медленный запрос."

обратите внимание, что записи в Firestore имеют сильную согласованность (это означает, что они имеют более высокую задержку по сравнению с возможными решениями согласованности).