Балансировка нагрузки веб-серверов с использованием Httpurlconnection на стороне клиента - PullRequest
0 голосов
/ 11 апреля 2011

Моему приложению необходимо подключиться к веб-службе для получения данных XML. У меня есть четыре конечных точки веб-службы.

Каков наилучший способ балансировки нагрузки между веб-сервисами?

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

У меня есть клиент, использующий HttpURLConnection, который прекрасно работает для любой конечной точки.

Я планирую использовать hashmap для URL-адресов и после этого вызывать по одному.

С уважением, Имран

1 Ответ

1 голос
/ 11 апреля 2011

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

В качестве альтернативы вы можете реализовать конечную точку, которая возвращает предпочтительное соединение, с которого клиент будет делать последующие вызовы.Затем реализация может назначать клиентам циклический стиль или со ссылкой на нагрузку, сообщаемую каждой конечной точкой в ​​любой момент времени.

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

...