2013-07-31 3 views
2

Я работаю над проектом, в соответствии с которым веб-сайт (все компоненты размещаются в Azure) будет иметь как американских, так и международных пользователей. Мы используем хранилище Blob и Table для 99% данных. Я не понимаю, как настроить глобальные экземпляры, включая несколько таблиц и т. Д., И синхронизировать все. Скажите, что пользователь регистрируется на сайте из Франции, как я могу убедиться, что он всегда попадет в тот же центр обработки данных (который подразумевает тот же экземпляр хранилища)? Если они попали в другой экземпляр хранилища, их данные не будут присутствовать и/или устаревают.Использование Azure для глобальных пользователей

ответ

1

И вычислить, и хранить аффинитированы в конкретный центр обработки данных. Нет глобальные вычисления или глобальное хранилище концепция развертывания.

Сказав это: обычно вы размещаете свое приложение для человека (например, веб-приложение) в одном центре обработки данных. Обычно задержка между браузером и сервером не является проблемой, если между ними перемещается относительно небольшое количество данных. Большая часть полосы пропускания обычно находится между серверами веб-серверов и приложений и/или экземплярами базы данных. И в Azure данные не обязательно должны быть размещены в одном центре обработки данных, например, в веб-приложении (хотя это идеальный сценарий с точки зрения ожидания с задержкой + выходная пропускная способность).

Если вы хотите вычислить в нескольких центрах обработки данных, вам понадобится механизм более высокого уровня, выполняющий для вас некоторый тип балансировки нагрузки (например, диспетчер трафика Azure). Однако даже при настройке «ближайшего» Traffic Manager вам не гарантируется, что пользователь во Франции попадет в центр обработки данных W. Europe vs. N. Europe. Вам всегда нужно планировать посещение посетителем любого центра обработки данных. Вот почему гораздо проще иметь дело с Compute в одном центре обработки данных.

Относительно данных: Если ваш Compute находится в одном центре обработки данных, нет необходимости (кроме аварийного восстановления) для записи данных в несколько центров обработки данных. Если вы do решите развернуть вычислить несколько центров обработки данных, вам понадобится собственный метод синхронизации данных. Для лазурных завалов & для хранения таблиц вы можете рассмотреть некоторый тип шаблона команды (например, CQRS), где ваши операции приводятся в очередь. Это позволяет обрабатывать каждую операцию обработки данных в очереди несколькими учетными записями в разных центрах обработки данных.

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

Смежные вопросы