Книга / Ресурс о настройке балансировки нагрузки и отказоустойчивости Java-веб-приложения на основе сервлетов [закрыто]

StackOverflow https://stackoverflow.com/questions/276623

Вопрос

Мы создаем веб-систему, используя Java и технологию Servlet (фактически Wicket для уровня представления), и нам нужно, чтобы наша система была доступна почти всегда, поскольку наши клиенты будут сильно зависеть от нее.

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

Неисключительный список вопросов, которые у нас есть на данный момент:

  • Откуда у вас одно доменное имя (например http://www.google.com) которые на самом деле обслуживаются несколькими серверами с балансировкой нагрузки для распределения пользователей?Разве не всегда есть более слабый момент в таком решении (два [поскольку не может быть больше] DNS-сервера для google.com в их случае)?
  • Кажется хорошей идеей иметь несколько серверов баз данных для резервирования и балансировки нагрузки.Как это устроено?
  • Если один из наших веб-серверов выйдет из строя, мы хотели бы, чтобы произошел какой-то сбой и пользователи могли использовать тот, который все еще работает.Помимо прочего, сеансы должны быть каким-то образом синхронизированы.Как это устроено?
  • Нужны ли нам также какие-то синхронизированные транзакции?
  • Является ли Amazon Computer Cloud хорошим вариантом для нас?Как нам это там установить?Существуют ли какие-либо экономически эффективные альтернативы?
  • Нужно ли нам запускать в контейнере Java EE, таком как JBoss или Glassfish?
Это было полезно?

Решение

Что касается GlassFish, централизованное администрирование через графический интерфейс администратора является большим подспорьем для сред с несколькими экземплярами appserver для управления."Всегда доступно" перегружено.Это может быть доступность сервиса без сохранения сеанса при сбое, или это может означать доступность данных с сохранением резервной копии информации о сеансе.Конечно, GlassFish может делать и то, и другое.Пара ресурсов, которые могут помочь в отношении GlassFish и высокой доступности:

Руководство по высокой доступности GlassFish:http://www.sun.com/offers/details/glassfish_HAref_config.html

Приготовление кластера стеклянных рыбок за 10 минут:http://blogs.oracle.com/jclingan/entry/glassfish_clustering_in_under_10

Джон Клинган, менеджер по продуктам GlassFish Group

Другие советы

В Liferay wiki есть руководство по высокой доступности запись с описанием архитектуры, которая могла бы послужить отправной точкой.

Вероятно, это упрощенный подход, но недавно я внедрил аналогичное решение для балансировки нагрузки и обеспечения высокой доступности.
В моем приложении в качестве веб-контейнера использовался Tomcat и база данных MySQL.Я подключил Tomcat к Http-серверу Apache и использовал модуль Apache mod_jk2 в качестве интерфейса для обработки балансировки нагрузки и отработки отказа.

В Интернете доступно множество ресурсов, начиная с документации Apache.Вот несколько:

http://tomcat.apache.org/connectors-doc/reference/workers.html

http://www.redhat.com/docs/manuals/rhaps/jonas-guide/s1-load-balancing.html

http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

Для MySQL проверьте MySQL proxy для балансировки нагрузки и отработки отказа.Это хорошая идея - иметь более одного сервера баз данных для балансировки нагрузки и аварийного переключения.один набор баз данных может быть предназначен для чтения, а другой - для записи.В зависимости от объема вы можете захотеть выделить больше / меньше серверов для чтения / записи.Документация по вашей базе данных также может помочь вам в настройке.

ХТХ.

Один мой друг говорит , что Создание Масштабируемых веб-сайтов это окончательная книга на эту тему:

Масштабируемые интернет - архитектуры автор: Тео Шлосснагл, также может представлять интерес.

Я только что закончил читать Проектирование корпоративных решений:Шаблоны для высокопроизводительных интернет-систем.Отличное введение для меня в масштабируемость, доступность, производительность, безопасность и множество других аспектов корпоративных систем

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top