Асинхронизация / опрос или синхронизация в архитектуре HA - PullRequest
0 голосов
/ 17 декабря 2010

Я разрабатываю решение REST для удаленной связи с несколькими серверами, которые существуют в другой сети. Некоторые из звонков относительно короткие, а другие могут занимать минуты. Вызовы являются синхронными по своей природе, поэтому, если вызов асинхронный, клиент (фактически сервер) должен опрашивать ответ. Опрос является неоптимальным в том смысле, что он вызывает снижение производительности и задерживает ответ конечному пользователю на долю интервала опроса. Я бы предпочел использовать синхронные вызовы, но если сетевое соединение обрывается, нет возможности получить ответ. Если асинхронный, удаленный сервер может вернуть идентификатор задания, который может быть опрошен, и пережить периодические проблемы с сетью. Повторные попытки и идемпотентность являются важными факторами.

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

1 Ответ

0 голосов
/ 17 декабря 2010

Вы можете создать синхронную систему, которая поддерживает «переподключение» в случае сбоя сети. Вызов переподключения будет способом для клиента «повторно присоединиться» к тому же вызову. Если бы сервер завершил вызов между разъединением и переподключением, возвращаемое значение было бы сохранено и могло быть возвращено сразу же, как только произойдет переподключение. Для поддержки переподключения вызовам должен быть присвоен идентификатор. Идентификатор может быть выбран клиентом в качестве ориентира и передан как часть начального вызова на сервер. Затем сервер связывает этот гид с вызовом. При отключении и повторном подключении клиент передает тот же guid, и сервер использует его для повторного подключения клиента к вызову. Для сохраненных значений, как описано выше, вероятно, потребуется некоторая продолжительность времени жизни, прежде чем они будут удалены из пула. Что ты думаешь?

...