Автономный режим Flex AMF?

В настоящее время я использую Flex (Flash Builder 4) и устанавливаю подключения веб-службы к серверу Apache PHP Zend AMF для получения данных.

Это отлично работает, но мне интересно, какие варианты доступны для обеспечения отказоустойчивости.

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

Например, если бы у них была хотя бы возможность вводить данные в приложение, это было бы началом. Поэтому, если они нажимают «сохранить», и он не может достичь сервера, он кэширует его или сохраняет в локальном файле до тех пор, пока сервер не восстановит резервную копию. Хотя отсутствие возможности выполнять поиск данных может быть большой проблемой.

Может быть, уже есть какие-то библиотеки или что-то, на что я могу взглянуть, чтобы сделать это?


person Scott Szretter    schedule 15.08.2011    source источник
comment
Честно говоря, моя первая мысль: а тебе это действительно нужно? Если есть проблемная машина, то пользователь, скорее всего, никогда не получит SWF. Такие вещи, как балансировка нагрузки и центры обработки данных, могут помочь решить проблемы со стилем работы сервера. Я бы не стал пытаться решать такие проблемы с отказом машины в коде.   -  person JeffryHouser    schedule 16.08.2011
comment
Да, я склоняюсь к тому, чтобы иметь второй сервер apache / php / db и настроить синхронизацию и репликацию между ними. Тогда все, что мне нужно сделать, это гибкое соединение с сервером server2, если сервер server1 недоступен.   -  person Scott Szretter    schedule 16.08.2011
comment
Я не уверен, что вы поняли мою точку зрения. Если ваша машина недоступна; как ваш пользователь загрузил из него приложение Flex?   -  person JeffryHouser    schedule 16.08.2011
comment
вы ищете Failover (en.wikipedia.org/wiki/Failover), возможно, с некоторая динамическая маршрутизация. При этом вам вообще не нужно помещать код if server1 down try server2 в клиент, все это может обрабатываться DNS-сервером / маршрутизатором.   -  person SuperSaiyen    schedule 16.08.2011


Ответы (1)


Пока что похоже, что я бы выбрал:

Решение для аварийного переключения (не уверен, какое именно). Как предложил SuperSaiyen, я предполагаю, что для этого мне понадобится конкретный маршрутизатор или DNS-решение. Идея состоит в том, что устройство будет либо направлять трафик, обычно предназначенный для server1, на server2, ИЛИ в случае решения dns, когда server1 не работает, оно будет возвращать адрес server2 для поиска.

Я считаю, что другим решением было бы несколько раз попытаться подключиться к серверу 1 в гибком коде. Если сервер не работает, он пытается server2. Как указал Флекстрас, это решает проблему, если приложение уже загружено на экран пользователя. Для меня это обычно так. Фактически, я мог бы даже подумать о том, чтобы сделать это приложение AIR, чтобы мне не приходилось иметь дело с начальной загрузкой приложения, если веб-сервер на server1 недоступен. В противном случае мне все равно пришлось бы иметь какое-то аварийное переключение DNS или дать им короткие пути к двум серверам и обучить их пробовать второй, если первый не работает (что, я думаю, НЕ является хорошим вариантом).

Есть другие идеи?

person Scott Szretter    schedule 19.09.2011