PHP: как лучше общаться между двумя серверами - PullRequest
0 голосов
/ 02 июля 2011

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

Будет центральный сервер, который будет действовать как платежный шлюз для приложений, а также предоставлять данные самим приложениям. Данные минимальны; идентификаторы пользователей, заплатили ли они за это приложение и т. д.

Идея заключалась в том, что когда приложение было приобретено, мы просто передавали эти данные соответствующему приложению.

Вопрос в том, как это сделать, не задерживая взаимодействие с пользователем, пока мы ждем, пока сервер приложений не будет перезапущен. Идея состояла в том, чтобы ввести его в очередь и обработать их один за другим на задании cron. Однако есть опасения, что это будет недостаточно быстро, и пользователю придется подождать, прежде чем получить доступ к приложению.

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

Что вы все думаете об этих идеях? Есть ли явно лучший способ сделать это?

Система должна иметь возможность масштабирования до 100+ приложений и десятков тысяч покупок приложений в час.

Очень интересно посмотреть, что вы все думаете! Большое спасибо

1 Ответ

0 голосов
/ 02 июля 2011

У меня похожая, но несколько иная ситуация, поддержка потенциального конкурента ... я сошел с ума ?? ха-ха

К теме мы используем cURL для подключения запросов к серверу в целом, особенно если мы не хотим, чтобы информация была общедоступной, у нас есть специальный VPS, настроенный для обработки платежей, функций счета и финансовых функций, о которых будет публиковаться в централизованная база данных MySQL только для доступа к информации, поэтому она будет поддерживать единый вход для нескольких приложений на нескольких кластерах серверов.

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

Ключ доступа важен для нас, поскольку он обеспечивает безопасность единого входа. Он генерируется 1 раз для каждой учетной записи и никогда не обновляется, хотя мы можем, если когда-либо произойдет нарушение безопасности. Затем мы используем cURL в процессе аутентификации пользователя, чтобы гарантировать, что пользователь все еще вошел в систему, используя свой ключ и идентификатор пользователя. Ключ никогда не передается публично, но всегда публикуется на стороне сервера, используя метод cURL, скрывающий его в PHP.

Надеюсь, это поможет.

...