Улучшение этого шаблона для обработки того, как мобильное приложение знает, как найти свой сервер - PullRequest
0 голосов
/ 08 октября 2010

Я обдумываю, как определить сервер (ы) для приложения на мобильном устройстве, которое использует wcf / веб-сервис.

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

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

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

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

Что я 'Мы дошли до следующего:

  1. Клиенту нужен первичный и вторичный URL для ссылки на wcf / веб-сервис.Это обслуживает изменения хост-провайдера.Старый хост может продолжать запускать службу в течение периода передачи обслуживания.При успешном развертывании на новом хосте вторичный / старый хост может быть отключен.Wcf / web-сервис по существу не имеет состояния, поэтому это несколько упрощает вопросы.

  2. Через определенные промежутки времени клиент запускает службу для запроса предоставления первичных и вторичных URL-адресов, а затем кеширует их.Это будущее подтверждает, что клиент может (в течение некоторого периода времени) быть проинструктирован службой за вторичным URL-адресом принять новый URL-адрес для будущего использования, пока службы первичного URL-службы запрашивают новый URL-адрес.Как только вторичная служба указала на новый первичный сервер, следующее периодическое обновление, запрошенное у первичного сервера, обновит кэшированный вторичный URL.

Что я пропустил?Возможно, это может быть проще?

1 Ответ

1 голос
/ 08 октября 2010

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

Отредактировано для отражения комментариев:

Чтобы быть уверенным, что изменение кажется несущественным, вы можете уменьшить TTL ваших записей DNS доочень низкое значение, чтобы быть уверенным, что распространение быстрое.Например, если перед переключением серверов вы измените свой TTL на 5 минут, убедитесь, что вы можете отключить свой первый сервер через 5 минут после обновления записей DNS.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...