2013-11-27 3 views
2

У меня есть приложение Java, и мне нужно, чтобы он был доступен. Я думал о FastMPJ, как работает несколько экземпляров на разных компьютерах. Каждую минуту приложение проверяет, запущен ли мастер-экземпляр, а если нет, другой будет запускаться вместо него.Приложение Java и высокая доступность

Я хотел бы спросить, является ли это хорошим решением, или если что-то лучше.

+0

Таким образом, приложение работает как сервер, но не использует существующую инфраструктуру сервера? – Thomas

+0

Если я предполагаю, что правильно, всегда существует работающий сервер, если клиент существует. Но это означает, что у него должен быть какой-то слушатель для входящих проверок. Так почему бы не оставить его на главном сервере в первую очередь? Есть ли несколько «главных серверов»? – Dropout

+0

, пожалуйста, посмотрите на аналогичный вопрос данной ссылки http://stackoverflow.com/questions/11904299/heartbeat-mechanism-in-java –

ответ

3

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

Преимущество этого решения, очевидно, в том, что аппаратное обеспечение фактически используется и не сидит где-то в режиме ожидания, ожидая в случае 0,01% для перехода. Затем экземпляр фактически протестирован все время, и будут сообщены ошибки когда они происходят (например, неисправное оборудование), и вы предотвращаете: «О ... резервная копия даже не работает». И вдобавок к этому вы аккуратно балансируете нагрузку между машинами.

2

В одном из моих проектов при реализации обмена мы использовали Apache Qpid для высокой доступности, и мой опыт был вполне удовлетворительным. Он очень хорошо масштабируется. Я запускаю приложение до 32 кластеров узлов. Вы можете найти более подробную информацию здесь и дайте мне знать, в случае, если и необходимо дальнейшей инфокоммуникационный: http://qpid.apache.org/releases/qpid-0.18/books/AMQP-Messaging-Broker-Java-Book/html/High-Availability.html

Надеется, что это помогает :)

0

Часто забывает, что также должна быть высокой доступностью от приложения к базе данных. По моему опыту, уровень доступа к данным - это место, где происходит большинство узких мест приложения. Поэтому убедитесь, что у вас хороший балансировщик нагрузки DB. Oracle имеет прочное решение, но только для баз данных Oracle. PostGres имеет версию с открытым исходным кодом. Heimdall Data - коммерческое решение.

Смежные вопросы