Я запускаю веб-приложение из центра обработки данных Великобритании. Скорость в порядке, как и ожидалось. Веб-приложение сильно зависит от базы данных. Я хотел бы открыть веб-приложение для Австралии и Новой Зеландии, но поддерживать хорошее время отклика от сервера.
По сути, каждый пользователь в приложении имеет доступ к данным, хранящимся в двух таблицах в базе данных. Каждый пользователь использует указанные данные для создания собственной комбинации этих данных и хранения в других таблицах в базе данных. В приложении есть несколько обновлений активов.
Зарегистрированные электронные письма должны быть уникальными во всех странах.
Исходя из моих ограниченных знаний в этой области, я считаю, что есть два варианта: A - Полная репликация базы данных между двумя хостами, одним в Великобритании и одним в Австралии. B - Периодическая репликация данных с исходного хоста, Великобритания, на целевые устройства в aus и nz.
Затем это оставляет домен 1. В идеале, домен был бы лучше всего, однако для этого потребовался бы своего рода сервер маршрутизации для направления трафика в зависимости от местоположения на разные серверы, но это увеличило бы время ответа 2 - Иметь альтернативные домены для каждой страны, маршрутизация непосредственно в страну местный хост
Я понимаю, что не изобретаю велосипед здесь, но что такое стандартный протокол для такого сценария? Насколько я понимаю, услуга cdn больше предназначена для доставки изображений и видео, я полагаю, что основной вопрос здесь - какой эквивалент для баз данных?
Спасибо за любую помощь, Джон
У вас есть несколько разных вопросов, которые, вероятно, лучше было бы подать как отдельные вопросы. Во-первых, как вы должны спроектировать структуру многосайтовой базы данных. Во-вторых, как вы перенаправляете пользователей на свои серверы.
Для проблемы с базой данных что-то простое, как репликация с несколькими мастерами может быть все, что вам нужно. На этот вопрос нет простого ответа, так как необходимо учитывать слишком много переменных. Объем данных, возможности программного обеспечения сервера базы данных, надежность соединения между двумя сайтами, сколько данных фактически необходимо разделить между сайтами, должны ли данные всегда быть одинаковыми или, в конечном итоге, одинаковыми. .
Для второй проблемы CDN может быть не лучшим выбором, если ваши сайты почти полностью динамические. CDN не для «доставки изображений и видео», а в первую очередь для статический контент доставка (изображения и видео являются подмножеством этого, любая веб-страница, которая не обслуживается динамически, файлы javascript, файлы css и т. д.). Многие CDN предлагают услуги, которые также могут ускорить динамический контент с помощью различных уловок, но это не то, что вы после.
Я знаю два основных способа, которыми CDN и крупные организации могут справиться с подобной ситуацией. Первый - через DNS, с использованием какого-то механизма для определения того, какой IP-адрес вернуть клиенту. Это может быть основано на IP-адресах клиента, таких как поиск в геолокация база данных или другой механизм, чтобы определить, на что лучше направить клиента.
Второй способ - использовать Anycast. Идея здесь в том, что вы объявляете одни и те же IP-адреса из разных мест и полагаетесь на стандартную интернет-маршрутизацию, чтобы добраться до ближайшего сайта (близкого по отношению к сети, а не по географии).
Если вы хотите узнать мое мнение, выберите место, которое имеет приличную связь с местами, которые вы хотите обслуживать. Например, если вы обслуживаете людей только в Великобритании и Новой Зеландии, одного места в США может быть достаточно для обоих. Я не знаю, что делает ваше приложение, но если разница в несколько миллисекунд окажет существенное влияние на вашего пользователя, вы можете пересмотреть дизайн. С моего рабочего стола в Сан-Хосе, Калифорния, до Новой Зеландии и Австралии менее четверти секунды (<250 мс).