Какой смысл в CDN, если моему серверу нужно управлять аутентификацией платежей?

Я разрабатываю проект, который ограничивает содержание периодическими платежами (подписками) и отдельными способами оплаты.

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

Привожу пример:

  1. Пользователь из Чикаго (Северная Америка) хочет увидеть изображение с ограниченным доступом, поэтому свяжитесь с моим основным внутренним сервером, расположенным в Париже (Европа).
  2. Внутренний сервер проверяет учетные данные и, если пользователь заплатил за контент, генерирует и возвращает перенаправление на заданный предварительно подписанный URL-адрес.
  3. Пользователь получает перенаправление и теперь снова должен ждать, пока серверы AWS S3 вернут ограниченное изображение.

Если на этом последнем шаге я мог бы использовать CloudFront для «улучшения» перенаправления изображений, это все равно дает много времени для завершения цикла, потому что мой процесс проверки находится в Европе.

Есть ли способ проверить, заплатил ли пользователь в Северной Америке? Я знаю о репликации (имеются в виду реплики PostgresSQL и второй внутренний сервер), но если для процесса загрузки требуется основная база данных, в какой-то момент запрос должен будет отправиться в Европу для выполнения.

Нужно ли моему приложению проверять, где находится пользователь, чтобы получить доступ к ближайшему внутреннему серверу, который может работать только в процессе чтения? Это означает еще один сервер в Северной Америке.

Немного запутался, поэтому приветствуются все точки зрения.

«в какой-то момент запрос должен будет отправиться в Европу, чтобы быть выполненным». Это не то, как работает репликация. Изменения реплицируются по мере их возникновения (или вскоре после этого), а не при запросе измененных данных.

jjanes 25.12.2020 19:34

Спасибо. Может быть, я не правильно объяснил. Я имел в виду, что запросы Uploads, например, разрешить пользователю загружать изображение, требуют сохранения этого реестра в основной базе данных, следовательно, в какой-то момент для выполнения этого действия потребуется отправиться в Европу.

golden-fenix 25.12.2020 20:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Название и содержание вашего вопроса можно переработать, чтобы сделать его более целенаправленным.

Как вы сами сказали, в пункте номер 3. CDN выполняет именно свой номинальный вариант использования, избавляя вашего пользователя от необходимости извлекать изображение из центра обработки данных далеко (помещая объект или статическое содержимое ближе к пользователю)

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

Спасибо за ваш ответ. Итак, это означает, что мне понадобится еще один внутренний сервер в Северной Америке (в данном случае), чтобы проверять платежи пользователей? Но что будет с загрузками. Насколько я знаю, в базах данных SQL существует только 1 основная база данных, это означает, что в какой-то момент запрос на загрузку будет отправлен в Европу. Надеюсь, мое объяснение было понятным.

golden-fenix 25.12.2020 19:56

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

qkhanhpro 25.12.2020 20:06

Кроме того, я надеюсь, вы знаете, что пользователь может загружать напрямую на S3... поэтому в процессе загрузки не требуется глобальная передача тяжелых данных туда и обратно... только запись в БД.

qkhanhpro 25.12.2020 20:15

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