Запросы балансировки нагрузки к серверу Weblogic 10gR3 RMI на Amazon EC2

Я участвую в разработке распределенного решения на основе RMI, развернутого на нескольких узлах Weblogic 10gR3 (10.3.0.0). На одном из узлов размещен сервер RMI, а другие узлы получают к нему доступ через стороннего поставщика JNDI. Пытаясь улучшить нашу инфраструктуру путем добавления дополнительных серверов RMI, мы столкнулись с некоторыми проблемами.

Подробная информация о нашей инфраструктуре:
-RMI-сервер работает на управляемом сервере, на порту 7005.
-RMI-клиенты получают доступ к нему через удаленного поставщика JNDI, который указывает на что-то вроде: t3: // hostname: 7005

Я публикую то, что мы пробовали до сих пор, при создании дополнительных серверов RMI, и почему это не сработало:

1) Использование Amazon ELB -> это не вариант, потому что для этого требуется открыть наш порт времени выполнения (7005) для всего Интернета, что, очевидно, было бы недостатком безопасности.

2) Настройка провайдера JNDI с несколькими конечными точками (что-то вроде: t3: // hostname1: 7005, hostname2: 7005), который, по-видимому, работает для очередей JMS -> все запросы были направлены на сервер RMI, работающий на hostname1, и приложение на самом деле работало нормально. Однако при преднамеренном сбое сервера за hostname1 запросы на hostname2 не направлялись. (Стоит ли их вообще перенаправлять?)

3) При использовании программного балансировщика нагрузки, такого как HAproxy ->, при балансировке на уровне HTTP запросы интерпретировались как «t3 10.3.0.0», что приводило к ошибке HTTP 502 на HAproxy. При балансировке на уровне TCP мы получили несколько ошибок «отсутствует объект», как если бы одно TCP-соединение использовалось для нескольких HTTP-запросов, и после того, как первое было прервано, последующие запросы не могли получить доступ к удаленным объектам ( просто догадываюсь).

4) Мы не хотели использовать кластерную среду WebLogic.

5) Мы не рассматривали использование высокоуровневых фреймворков, таких как spring-remoting-cluster пока нет.

Любые подсказки / предложения? Заранее спасибо!


person Viccari    schedule 06.02.2012    source источник


Ответы (1)


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

person Viccari    schedule 09.02.2012