Как создать глобальную архитектуру микросервисов и API?

У меня возник вопрос относительно глобальной доступности API и производительности. По сути, мы хотели бы создать API, который является центральным для нашего бизнеса, но он должен быть высокодоступным и производительным во всем мире, а это означает, что время отклика API должно быть минимальным, независимо от того, выполняется ли вызов в США, Китае или в любой другой стране мира. API фактически является интерфейсом к архитектуре микросервисов, управляемой доменом. В настоящее время мы используем Microsoft Azure в качестве нашего облачного провайдера для размещения этих микросервисов, но я хотел получить несколько предложений по созданию решения, которое сделает это продуктивным во всем мире. Нужно ли нам развертывать сервисы в нескольких регионах, чтобы это работало? Если да, то как мне направить входящий запрос в соответствующий регион?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
0
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы разделил ваши данные по регионам, используя имя пользователя в качестве ключа раздела. Распространяйте свои микросервисы и базы данных по всему миру в подходящих местах, но сохраняйте единую центральную службу входа. Когда пользователи регистрируются в вашей центральной службе регистрации, вы назначаете им регион в зависимости от их домашнего адреса, IP-адреса или какого-либо другого географического показателя. Когда они возвращаются для входа во второй раз (используя центральную службу), вы аутентифицируете их и извлекаете их регион из центральной БД. Теперь вы можете направить весь дополнительный трафик в соответствующий регион для наилучшей производительности.

Вам нужно будет реализовать полный набор доменов в каждом регионе.

Спасибо за ваш комментарий. Что, если пользователям нужен доступ ко всем данным, а не только к данным, которые для них разделены?

user2689570 06.06.2018 22:29

Боюсь, ваш единственный выход - это репликация всех данных. MS и AWS предлагают эту услугу. Вы можете выполнить поиск геоизбыточного хранилища Azure, чтобы узнать об их версии. Я не знаю, каково их SLA для репликации, но предполагаю, что это займет секунду или две.

Brad Irby 07.06.2018 00:08

Спасибо @Brad Irby. Я ценю помощь.

user2689570 08.06.2018 16:14

Другие вопросы по теме