Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Балансировка нагрузки в приложении / 17 сообщений из 17, страница 1 из 1
21.02.2012, 22:40:45
    #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
21.02.2012, 23:11:54
    #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
22.02.2012, 00:08:39
    #37673606
marx_freedom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Балансировка нагрузки в приложении
BlazkowiczТа вроде никакого криминала. Деплоим разные JEE модули на все ноды. Не нужные останавливаем. Главное чтобы loadbalancer нормально отрабатывал остановки.

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

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

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

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

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


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

Согласен. Можно, например, биткоины вычислять.
...
Рейтинг: 0 / 0
14.03.2012, 12:53:40
    #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
14.03.2012, 12:56:03
    #37704600
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Балансировка нагрузки в приложении
Petro123Горизонтальное масштабирование - основная фишка Java.
В чём тут проблема? В тупом заказчике или кривой фишке?
- балансировка нагрузки - это небесплатная вещь, а платить за готовый балансировщик не все готовы. Кроме того иногда есть желание самому определять логику балансировки.
...
Рейтинг: 0 / 0
14.03.2012, 13:04:34
    #37704625
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Балансировка нагрузки в приложении
Kachalov,
в том то и дело, что "иногда самому".
Непонятно почему бесплатных нет.
Если я буду писать сам MVC-JSP-мппингУрл вы первый скажете - велосипед - есть спринг.
И это будет справедливо.
...
Рейтинг: 0 / 0
14.03.2012, 13:37:25
    #37704707
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Балансировка нагрузки в приложении
Petro123Непонятно почему бесплатных нет.

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

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


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