Сdn на backend?

Есть сайт основная аудитория: Австралия, Европа.
Backend сервер с api размещается в Австралии.
ping пользователяем из Австралии 50 мс, из европы 350 мс. Что очень долго.

Развернуть сервер в европе не проблема, но как сделать пользователям из европы что бы ишли запросы на него ? И как быть с базой данных? делать master - master ?

Если делать балансировку на nginx, то опять же сначала запрос идет на сервер Автсралии, потом определяем ip идем на сервер европы. В теории еще дольше получится.

На уровне dns. Опять же где размещать dns сервер ? Если к нему ping тоже может быть большим
  • Вопрос задан
  • 671 просмотр
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Балансировку в таких случаях делают на dns. Насколько я помню Amazon Route53 точно умеет гео-балансировку, но можно и какой-нибудь другой сервис поискать.

Основная проблема в этой истории это вопрос синхронизации базы.
master-master омерзительно работает даже между датацентрами в одном городе - через континент это мертворожденная идея

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

Нужно определиться:
a) насколько реально данные должны быть консистентны. (если не сильно - вам повезло)
b) какой объем данных нужно синхронизировать (в событиях в секунду и в мегабайтах в секунду)
И дальше исходя из этого уже садиться думать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. SPA
2. Пакетная передача информации в формате JSON: сразу несколько данных
3. Сжатие всего трафика
4. Устанавливаете логическую связь (если она есть) между двумя разными группами аудитории (по-геолокации) и только эту информацию синхронизируете между двумя различными GEO-площадками.
5. По GEO-DNS, на основе IP-адреса пользователя, направляете на ближайшую GEO-площадку.
Ответ написан
Комментировать
Esmi
@Esmi
support@skyparkcdn.com
Если нужен CDN только для API и базы данных, то вам он не подойдет. CDN нужен для кеширования статики: картинки, музыка, видео, шрифты, js, css, html и т.п., т.е. файлов, которые не меняются при каждом запросе. Базы данных и API - это динамика, т.к. меняются данные при каждом запросе.

Если нужен быстрый доступ к БД и при этом её синхронизация, думаю стоит посмотреть в сторону облачных сервисов. Это должно выйти дешевле, чем покупка второго сервера в Европе, настройка балансировки пользователей + синхронизация БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы