База данных Firebase Realtime - масштабирование более 100 000 одновременных подключений - PullRequest
0 голосов
/ 25 апреля 2018

Приложение, над которым я сейчас работаю, нуждается в масштабируемой связи в реальном времени.Мы изучили и опробовали базу данных Firebase в режиме реального времени и пожарный магазин.Похоже, что база данных Firebase в реальном времени более зрелая и проверенная, в то время как Firestore все еще находится в бета-версии, поэтому мы склоняемся к базе данных в реальном времени.

Однако мы обеспокоены возможностями его масштабирования в нашем контексте.Наши запросы будут в основном гео-пространственными в зависимости от местоположения пользователя.Согласно одновременным соединениям Firebase в реальном времени с моей базой данных и https://firebase.google.com/pricing/#faq-simultaneous максимальное количество одновременных пользователей составляет 100 000, что будет слишком мало для наших нужд.

Согласно их документациикажется, что сегментирование базы данных - это способ масштабирования более 100 000 одновременно работающих пользователей https://firebase.google.com/docs/database/usage/sharding. Поскольку наши запросы основаны на местоположении пользователя, мы можем сгруппировать данные по регионам, например, Запад США, Центральный США и Восток США ииметь экземпляр базы данных для каждого из этих трех регионов.

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

Существует ли более простой подход для масштабирования более 100 000 пользователей или можно увеличить количество одновременных подключений для одной базы данных Firebase в реальном времени?Мне кажется почти пустой тратой использовать Firebase, если он требует от вас такой большой балансировки «нагрузки».

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Существует ли более простой подход для масштабирования свыше 100 000 пользователей или возможно увеличить количество одновременных подключений для одной базы данных реального времени Firebase?

Да.используйте базу данных Firestore.

Масштабируется полностью автоматически.В настоящее время пределы масштабирования составляют около 1 миллион одновременных подключений и 10 000 операций записи в секунду. (они планируют увеличить эти ограничения в будущем) ( source )

Официальновне бета-версии и в общем доступе с 31.01.2009 ( источник )

0 голосов
/ 25 апреля 2018

Одновременное подключение 100 КБ является жестким ограничением для базы данных Firebase Realtime.

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

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

...