Как организовать кластеризацию JBoss/Blazeds и аварийное переключение каналов

Я застрял с кластеризацией jboss и blazed. Что у меня сейчас есть:

  1. 2 экземпляра Jboss, работающие во всех режимах
  2. Один балансировщик нагрузки с apache и mod_jk, как это предлагается в документации Jboss.
  3. Приложение для интеграции spring/flex
  4. Гибкое приложение, которое я не хочу выдавать с ошибками, когда один из моих экземпляров JBoss падает

Мне действительно не хватает документации Adobe, и, будучи новичком в кластеризации, jgroups и балансировке, я не могу найти, как развернуть свое приложение в кластерной среде.

На самом деле это решение отлично работает с удаленными вызовами. Если один из экземпляров jboss выходит из строя, rpc перенаправляется на другой экземпляр. Что не работает, так это push-сообщения, потому что, если клиент подключен к JBossA, а JBossA выходит из строя, клиент отображает сообщение об ошибке, в котором говорится, что он не может связаться с JBossA, когда он должен переключиться на JBossB, при этом пользователь ничего не заметит.

Из того, что я понял, при правильной настройке blazed должен сообщать flex-клиенту об отказоустойчивых серверах при подключении. Затем, если гибкий клиент не может подключиться к основному серверу, он переходит на другой. Но самое сложное для меня — это добраться туда. Может ли кто-нибудь указать мне правильное направление? заранее спасибо


person Francesco    schedule 06.04.2010    source источник
comment
На самом деле мне удалось заставить работать кластеризованные приложения blazed, но я был вынужден не использовать собственный механизм кластеризации jboss. Если кто-нибудь может сказать мне, как мне все еще интересно это знать.   -  person Francesco    schedule 07.04.2010


Ответы (1)


Если у вас есть веб-сервер apache, расположенный между клиентами и серверами JBoss, а mod_jk обрабатывает связь между apache и JBoss, то это должно быть уже выполнено вашими требованиями к отказоустойчивости.

mod_jk обнаружит, если какой-либо из серверов JBoss выйдет из строя, и отправит запросы другому. Что касается клиентов, они видят один сервер, который является сервером Apache. Они не видят за этим ничего из серверов JBoss.

Я ничего не знаю о кластеризации BlazeDS, но я предполагаю, что у него есть какая-то форма ручного механизма аварийного переключения, который сообщает клиентам список адресов серверов, и клиенты выбирают тот, который работает. Это должно быть необходимо только в том случае, если у вас нет посредника mod_jk, поэтому, надеюсь, вы можете просто игнорировать кластеризацию blazeds.

Конечно, все может стать намного сложнее, например, когда вам нужно, чтобы серверы JBoss взаимодействовали между собой (например, репликация сеанса, кластеризованный JMS, распределенное кэширование и т. д.), но если вам ничего из этого не нужно, то вы можете смело игнорировать это.

person skaffman    schedule 06.04.2010
comment
Извините, я забыл указать, что с этой конфигурацией классический отказоустойчивость в порядке. Чего не хватает, так это аварийного переключения в отношении пунктов назначения push-уведомлений. Я отредактирую свой ответ! - person Francesco; 07.04.2010