У меня есть кластер Glassfish v2u2 с двумя экземплярами, и я хочу переключаться между ними. В каждом документе, который я читал на эту тему, говорится, что я должен использовать балансировщик нагрузки перед Glassfish, например Apache httpd. В этом сценарии аварийное переключение работает, но у меня снова есть единая точка отказа. Способен ли Glassfish выполнить такое переключение при сбое без переднего балансировщика нагрузки?
Отработка отказа Glassfish без балансировщика нагрузки
Ответы (3)
Мы решили, что у нас есть два IP-адреса, которые оба отвечают на URL-адрес. Провайдер DNS (DNS Made Easy) будет использовать циклический алгоритм между ними. Установка низкого тайм-аута гарантирует, что в случае сбоя одного сервера ответит другой. Когда один сервер перестает отвечать, DNS Made Easy отправит другой хост только в качестве сервера для ответа на этот URL-адрес. Вам придется доверять провайдеру DNS, но вы можете купить услугу с чрезвычайно высокой доступностью поиска DNS.
Что касается высокой доступности, вы можете настроить кластер, который позволяет репликацию сеанса, чтобы пользователь не потерял больше, чем потенциально один неудачный запрос.
Хм... JBoss может выполнять отработку отказа без балансировщика нагрузки в соответствии с документацией (http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html) Глава 16.1.2.1. Перехватчик на стороне клиента.
Насколько я знаю, Glassfish кластер обеспечивает репликацию сеансов в памяти между узлами. Если я использую Suns Glassfish Enterprise Application Server, я могу использовать HADB, который обещает 99,999% доступности.
Нет, вы не можете сделать это на уровне приложения.
Ваши варианты:
- DNS с циклическим перебором — предоставьте доступ к Интернету обоим своим серверам и позвольте клиенту выполнять балансировку нагрузки — это довольно привлекательно, поскольку определенно обеспечивает аварийное переключение.
- Используйте другую систему балансировки нагрузки уровня 3, например "балансировку сетевой нагрузки Windows", "балансировку сетевой нагрузки Linux" или ту, которую я написал под названием "Пушистый кластер Linux"
- Используйте отдельный балансировщик нагрузки с резервным горячим резервом.
В любом из этих случаев вам все равно необходимо убедиться, что ваша база данных, данные сеанса и т. д. доступны и синхронизированы между членами вашего кластера, что на практике намного сложнее.