среда, 20 апреля 2011 г.

Балансировка нагрузки с помощью mod_wl


Балансировка нагрузки возможна не только между серверами, объединёнными в кластер. С некоторыми ограничениями, можно сделать это с помощью любого балансировщика нагрузки, в том числе и с помощью apache + mod_wl просто перенаправляя запросы на разные сервера, на которые задеплоено одно приложение. Естественно, фича session failover при этом не доступна.

В моём случае необходимо было реализовать возможность перезагрузки экземпляров weblogic (по очереди) без потери доступности сервиса. При этом потеря сессии и её состояния не считается критичной.
Будем реализовывать вот такую схему:



Если почитать документацию, можно найти нужный параметр
WebLogicCluster
под которым подразумевается
List of WebLogic Servers that can be used for load balancing
Это список  серверов, доступных для перенаправления на них запросов. Список динамически обновляется, учитывая failed и recvered в данный момент сервера.
При этом не стоит переопределять параметр
DynamicServerList
он по имелчанию равен ON. При установке его в Off возможно перенаправление запроса на неработающий в данный момент сервер.

Для апача настройка будет такой же, как и в предыдущем посте. Конфиг модуля будет выглядеть так

LoadModule weblogic_module "/etc/apache2/modules/mod_wl_22.so"

<IfModule mod_weblogic.c>
       WebLogicCluster server1:8001,server1:8002,server2:8001,server2:8002
     MatchExpression *.jsp №перенаправлять только jsp-страницы
</IfModule>
Или, например, так

<Location /myApp>
    SetHandler weblogic-handler
    PathTrim /myApp    WebLogicCluster server1:8001,server1:8002,server2:8001,server2:8002
</Location>
Парвый вариант перенапрвляет запрс на основе MIME-типа. Второй по явному указанию пути (path) или его части

Комментариев нет:

Отправить комментарий