Достижение высокой доступности для java webapplation

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

  •  27-09-2019
  •  | 
  •  

Вопрос

Каковы инструменты для достижения высокой доступности для веб-приложения Java.

Это было полезно?

Решение

Основной подход к использованию не является инструментом. Это называется «качественное программное обеспечение» - т. Е. Вы должны обрабатывать все ваши ресурсы (включая синхронизацию) должным образом.

Apache Hadoop. Это то, что вы можете использовать для распространения и масштабирования вашей системы. Но это для огромный Приложения.

Балансировки нагрузки это что-то, чтобы посмотреть также.

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

Может быть, вы ищете кластерное решение? Есть версия OpenSource Clustering JVM TerraCotta

Устранение отдельных точек провала посредством избыточности на всех уровнях приложения. Вы можете задать себе вопросы по строкам «Что произойдет, если X не удается», а затем найти способы смягчения этого риска.

Есть как минимум два основных аспекта, которые вам придется решать:

  1. Операционный
  2. Архитектура, дизайн, код

Каждый из этих элементов - большие вопросы. Например, есть пара хороших сайтов, посвященных этим (см. ServerFault.com и StackoverFlow.com, соответственно).

Операционные соображения включают в себя: Развертывание масштабирования, включая балансирование нагрузки, аварийное восстановление, CDN, если это возможно, и мониторинг. Одним направлениям развертывания также важны.

Архитектура -> Кодовые соображения являются многочисленными и значимыми. Из архитектуры вашего раствора к макету вашего кода для ремонтопригодности и самым сложным для достижения: правильность. Мое лучшее предложение: нанять кого-то с опытом. Что не удалось, читать книги и тому подобное от кого-то с опытом.

Также в мире Java очень важно прийти к тому, чтобы с этим важным фактом: он, вероятно, был написан ранее. Это отличные новости! Так много очень очень ярких людей провели бесчисленные часы написания кода для тебя И сделали его свободно доступным в таких местах, как [Jakarta] Apache, Google Code, CodeHaus, SourceForge и множество других открытых исходных сайтов. Чем больше исследований вы делаете на ваш вопрос, тем больше вы найдете этих игроков. Важным навыком является определение того, какое доступное программное обеспечение является хорошим подходящим для вас.

Люди внесли другие ответы с конкретными технологиями выбора, многие из которых являются хорошими предложениями, но все это сводится к фактической проблеме, которую вы пытаетесь решить, и только вы знаете, что это (ну, вопрос не говорит нас В любом случае: D).

Чтобы начать вам понадобиться:

  1. Веб-приложение, которое может работать на нескольких веб-серверах одновременно.
  2. Балансирующая нагрузка в интернет-конце, которое может обнаружить неудачные веб-серверы и маршрутный трафик в другие живые экземпляры. Эта часть не должна быть в Java. Вам нужно будет найти точку интеграции между вашим контейнером Balancer и веб-приложения.

После прохождения начальной настройки вам необходимо найти другие возможные точки провала, как серверы базы данных, сам сервер балансировки нагрузки, DNS-сервер и т. Д., А затем попытаться добавить избыточность и переключение переключения на эти слои тоже.

Вы также должны учитывать аппаратные решения, такие как RAID, SAN и т. Д.

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