powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Балансировка нагрузки в приложении
17 сообщений из 17, страница 1 из 1
Балансировка нагрузки в приложении
    #37673522
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветсвую всех.

Нужно спроектировать 3х-звенное приложение (java ee), логика на java, и, пусть для примера сервисов будет 2: Foo и Bar. Что есть "сервис" - web-service, ejb, spring bean или иной java class - вопрос открытый. Приложение работает в кластере из 8 серверов приложений. Число 8, опять же, для примера - т.к. приложения еще нет :)
И теперь, самое интересное - требуется управлять доступными ресурсами для каждого сервиса в отдельности. Например сегодня мы хотим чтобы оба сервиса работали на всех 8 нодах, а завтра - пусть сервис Foo работает не более, чем на 2 нодах, а Bar - на 6 других (как вариант Foo - только на 2 из 8, Bar на всех 8).

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

Приложение должно работать на сервере приложений (ориентировочно weblogic), использование ejb не принципиально.
Если что, то идея такого управления нагрузкой исходит от заказчика, ее можно немного изменять.


--
Солнце встанет непременно!
jabber id: marx [.at.] jabber [.dot.] ru
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37673550
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marx_freedomНужно спроектировать 3х-звенное приложение (java ee), логика на java, и, пусть для примера сервисов будет 2: Foo и Bar. Что есть "сервис" - web-service, ejb, spring bean или иной java class - вопрос открытый. Приложение работает в кластере из 8 серверов приложений. Число 8, опять же, для примера - т.к. приложения еще нет :)
И теперь, самое интересное - требуется управлять доступными ресурсами для каждого сервиса в отдельности. Например сегодня мы хотим чтобы оба сервиса работали на всех 8 нодах, а завтра - пусть сервис Foo работает не более, чем на 2 нодах, а Bar - на 6 других (как вариант Foo - только на 2 из 8, Bar на всех 8).

Та вроде никакого криминала. Деплоим разные JEE модули на все ноды. Не нужные останавливаем. Главное чтобы loadbalancer нормально отрабатывал остановки.

marx_freedomКакие подходы вы использовали, если делали что-то подобное? Прошу советов, идей (свои тоже есть), ссылок на статьи - готового решения не ищу.

Гугл->
java load balancer
heterogeneous cluster java

Статей много. Причем довольно толковых.

marx_freedomПриложение должно работать на сервере приложений (ориентировочно weblogic), использование ejb не принципиально.
Если что, то идея такого управления нагрузкой исходит от заказчика, ее можно немного изменять.

Если вероятность использования WL высокая, то я бы рекомендовал для начала проштудировать его манулы по вопросам кластеризации.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37673606
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТа вроде никакого криминала. Деплоим разные JEE модули на все ноды. Не нужные останавливаем. Главное чтобы loadbalancer нормально отрабатывал остановки.

C приложениями на кластере я много раз имел дело, но они почти все были монолитными (один EAR с кучей всего внутри), поэтому про вариант тоже подумал "Не нужные останавливаем" и начал читать документацию :)

Я специально написал, что не принципиально spring/ejb/pojo - вдруг есть какая-то интересная библиотека/фреймворк/технология которая может помочь или хотя бы даст возможность посмотреть на задачу с другой стороны.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37674454
Алексей1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marx_freedom,

www.jelastic.com :)
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37685518
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей1987,

к облакам российские заказчики холодно относятся.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37686048
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы написал что-то типа балансировщика нагрузки через JNDI
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37702925
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,

а можно чуть подробнее про идею?
Сервлет (например, хотя это основные клиенты для ejb будут) вместо получения бина через инъекцию (@EJB) обращается к самописному балансировщику, которой уже выбирает ноду и делает с нее jndi lookup?


Если кому-то интересно - я дошел до тестов от чтения доки, и на wl 12c не получается выключить java-ee модуль на определенных нодах, паковал уже и в ear и отдельными ejb-jar'ами деплоил. Можно деплоить только модуль не на весь кластер, но это криво (вдруг нода отвалится, плюс дока предупреждает о jndi конфликтах и прочем).
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37703137
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно эти сервисы будут долбиться в базу - следовательно узким местом будет база. Тогда совершенно неважно, как раскидывать их по узлам.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37703143
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идея такого управления нагрузкой исходит от заказчика
Когда писал предыдущее сообщение, не прочитал эту фразу.
Надо сделать как можно более тяжеловесную и идиотскую систему "балансировки" - главное чтобы заказчик был доволен.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37703171
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аффтар!
KachalovЯ бы написал что-то типа балансировщика нагрузки через JNDI
я не понял.
Горизонтальное масштабирование - основная фишка Java.
В чём тут проблема? В тупом заказчике или кривой фишке?
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37703182
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪВсе равно эти сервисы будут долбиться в базу - следовательно узким местом будет база. Тогда совершенно неважно, как раскидывать их по узлам.
И такое бывает, не спорю. Но есть основания полагать, что чем занять апп сервер - найдется.
Излишне навороченную или идиотскую систему делать не хочется, поэтому любым советам все еще рад :)
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37703307
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но есть основания полагать, что чем занять апп сервер - найдется.

Согласен. Можно, например, биткоины вычислять.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37704597
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marx_freedomа можно чуть подробнее про идею?
Сервлет (например, хотя это основные клиенты для ejb будут) вместо получения бина через инъекцию (@EJB) обращается к самописному балансировщику, которой уже выбирает ноду и делает с нее jndi lookup?.

- да, как-то так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class BeanMap {
   
   public static MyBean getMyBean() {
       //проверяем загрузку узлов и получаем имя наименее загруженного узла
       String nodeName = ...;
       Properties properites = new Properties();
       properties.setProperty("org.omg.CORBA.ORBInitialHost", nodeName);
       return (MyBean) (new InitialContext(properties)).lookup("ejb/MyBean");
   }
}



Йуный джавистЪВсе равно эти сервисы будут долбиться в базу - следовательно узким местом будет база. Тогда совершенно неважно, как раскидывать их по узлам.
- неизвестно как работает приложение о котором идет речь, но если действительно основной акцент не на обработке данных, а на операциях типа CRUD, то все равно ORM является объектным кэшем и, в зависимости от того как часто производится синхронизация с базой, обычно снижает нагрузку на нее.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37704600
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Горизонтальное масштабирование - основная фишка Java.
В чём тут проблема? В тупом заказчике или кривой фишке?
- балансировка нагрузки - это небесплатная вещь, а платить за готовый балансировщик не все готовы. Кроме того иногда есть желание самому определять логику балансировки.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37704625
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,
в том то и дело, что "иногда самому".
Непонятно почему бесплатных нет.
Если я буду писать сам MVC-JSP-мппингУрл вы первый скажете - велосипед - есть спринг.
И это будет справедливо.
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37704707
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Непонятно почему бесплатных нет.

- во всяком случае я не видел ;) если что-то знаете, шлите ссылки, общественность будет рада
- задачи в которых требуется балансировка подразумевают проекты с уровнем отличным от начального, в связи с чем понятно желание разработчиков софта, заработать

Petro123Если я буду писать сам MVC-JSP-мппингУрл вы первый скажете - велосипед - есть спринг.
И это будет справедливо.
- лично я Spring не использую ни в каком виде ;) У меня есть собственный MVC web-движок с DI который нормально инжектирует EJB
...
Рейтинг: 0 / 0
Балансировка нагрузки в приложении
    #37704789
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,
OK
конечно сообщу, т.к. первый козырь у приверженцев ОРМ - простое масштабирование докупкой машин.
Конкретику никто не приводил :)
Удачи!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Балансировка нагрузки в приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]