Рекомендуемый способ масштабирования firebase путем добавления регионов - программирование
Подтвердить что ты не робот

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

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

Они обрабатывают соответствующие среды и находятся в зоне США.

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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