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

По сути, от RMI мне нужно только создать соединение, вызвать 1-2 метода на ремоут хосте, получить ответ. Все методы работают a la REST, никакой сессии не имеют. Но желателен Subj. Т.е. потенциально иметь возможность:

1. Если какой-то сервер в момент вызова/коннекта не отвечает - переключится на резервный
2. Какая-то банальная балансировка нагрузки. Например один вызов на один сервер, следующий на второй, следующий обратно на первый.

Погуглил в И-нет, балансировщики есть, но какие-то уж сильно Enterprise уровня (a la Weblogic). Мне такое не нужно. Пока делаю свой велосипед (вроде не сложно), но чувство, что велосипедостроение не есть хорошо - остается.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227581
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

JBoss + Stateless Session Bean

В принципе, и руками должно быть не сложно.
Балансировщик - вообще любой удобный для вашей сети
Резервирование - любой распределенный кэш
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227586
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все методы работают методы работают a la REST то надо было и создавать Rest.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227597
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня кол-во вызовов достаточное большое/частое + сейчас много активных потоков плодится (>30-40). Как-то есть подозрение, что HTTP будет недостаточно быстро + большие накладные расходы.

Сейчас многопотоковость вычислений реализовал (>30-40 потоков), даже задержки на RMI стали заметны, т.ч. например сейчас все java.io.Serialization меняю на java.io.Externalization. А при HTTP, подозреваю, вообще можно будет тушить свет ))).

Про HTTP задумываюсь, но в одном месте он 100% не пролезет по скорости. Т.ч. от RMI не уйти. А мне кажется, мешать в одном проекте два транспортных протокола - то же не есть хорошо.

В принципе, и руками должно быть не сложно.

Ну да. Получается максимум пара десятков/сотен строк кода.
Правда как его отлаживать - не очень понятно. Я опыта построения высоконагруженных систем не имею.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227603
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли все методы работают методы работают a la REST то надо было и создавать Rest.
Ну у меня REST и есть, только не HTTP )))

Если читать Вики,
https://ru.wikipedia.org/wiki/REST

То нигде не сказано, что протокол ТРАНСПОРТНОГО уровня обязательно должен быть HTTP )))
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227622
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczРезервирование - любой распределенный кэш
А что общего между кешем и резервированием ?

И еще вопрос по кэшам. Нужен кэш/прокси, но со специфическим поведением:

1. В кэш должен помещаться запрос ДО ОКОНЧАНИЯ его обработки. Т.к. высока вероятность (очень часто!), что придет несколько одинаковых запросов и, в этом случае, нужно понять что они одинаковые и выполнить только один.

2. Должна быть возможность гибко прописывать политику времени жизни объектов. Т.е. в зависимости от данных запроса, время его жизни в кэше может сильно отличаться.

3. Скорость работы критична

Я смотрел на кеши, но наверное, нужно было смотреть на прокси (((. Не уверен, как прокси будут требованию N1 удовлетворять. Если подходящий прокси найдется - то тогда можно и от RPC попытаться уйти.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227646
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevА что общего между кешем и резервированием ?

В данном случае кэш выступает как просто хранилище для сессии.
Но если взять Terracotta, то с ней, по-моему, вообще что угодно можно реплицировать. Любое состояние в твоей JVM.


Leonid KudryavtsevИ еще вопрос по кэшам. Нужен кэш/прокси, но со специфическим поведением:
1. В кэш должен помещаться запрос ДО ОКОНЧАНИЯ его обработки. Т.к. высока вероятность (очень часто!), что придет несколько одинаковых запросов и, в этом случае, нужно понять что они одинаковые и выполнить только один.
2. Должна быть возможность гибко прописывать политику времени жизни объектов. Т.е. в зависимости от данных запроса, время его жизни в кэше может сильно отличаться.
3. Скорость работы критична

EhCache + Terracotta. Но, надо, конечно, планировать в зависимости от того на сколько критично случайное выполнение одинаковых запросов, если они на разные узлы пошли. Если критично, то можно выделить один сервер под задачу унификации запросов, а само выполнение уже распределять.

Leonid KudryavtsevЯ смотрел на кеши, но наверное, нужно было смотреть на прокси (((. Не уверен, как прокси будут требованию N1 удовлетворять. Если подходящий прокси найдется - то тогда можно и от RPC попытаться уйти.
Не догоняю при чем тут прокси.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227663
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТо нигде не сказано, что протокол ТРАНСПОРТНОГО уровня обязательно должен быть HTTP )))
Ого... ну может быть и не сказано.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227715
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczLeonid KudryavtsevИ еще вопрос по кэшам. Нужен кэш/прокси, но со специфическим поведением:
1. В кэш должен помещаться запрос ДО ОКОНЧАНИЯ его обработки. Т.к. высока вероятность (очень часто!), что придет несколько одинаковых запросов и, в этом случае, нужно понять что они одинаковые и выполнить только один.

EhCache + Terracotta.

По EhCache доку смотрел, но как сделать такое сделать - мне не очень понятно.

Было желание его использовать, но у них все "наиболее вкусные фичи" в платной версии.
BlazkowiczЕсли критично, то можно выделить один сервер под задачу унификации запросов, а само выполнение уже распределять.

Критично. Сейчас даже сильно критично, т.к. последние оптимизации кода привела к тому, что ~ 70% будет похожих и будут приходить почти одновременно.

Но задача "унификации запросов" уже автоматически несет за собой почти полное создание функционала кэша. Т.ч. получается, что если ее делать самому, то в общем и кэшь не нужен ))) Просто HashMap в котором запросы "унифицировали" сделать большего размера ))).
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227719
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще один вопрос:

А кто чем пользуется для мониторинга серверов?
1. Что бы была достаточно тесная интеграция с Java / JVM: память, thread, RMI, какие-то свои метрики.
2. Сбор log'ов с серверов в одно централизованное место.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227767
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, у тебя к каталоге /bin лежит JVisualVm. Запускай смотри.
Поставь плагин для JMX, полезная штука. Поставь плагины для мониторинга
CPU/Heap. И прочие.

JMX - это аналог icmp для Java.

Аналогичным функционалом обладает JBoss. Он показывает веб-морду
для JMX. Давно лет 5 назад было также полезное веб-приложение PSIProbe.
Щас поддерживается или нет - невкурсе.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227770
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы поднялся JMX-сетевой порт надо java запускать с ключиками. Иначе - только локальные процессы видны.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227774
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, насчет сбора логов - сложный вопрос. И наверное не в тему Java.
Я-бы стаскивал логи как-то по другому.

Но у Log4j (старой версии 1.2.x) есть много альтернативных Appenders которе могут писать в syslog, Windows-syslog,
jdbc-базу, многое другое. Причем код переписывать не нужно. Достаточно только конфигурирования
базового конфига log4j.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227818
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonLeonid Kudryavtsev, у тебя к каталоге /bin лежит JVisualVm. Запускай смотри.
Поставь плагин для JMX, полезная штука. Поставь плагины для мониторинга
CPU/Heap. И прочие.

JMX - это аналог icmp для Java.

От JVisualVM до адекватной системы мониторинга... как пешком до луны. IMHO

Попытаюсь Zabbix поставить, посмотрю на него
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227880
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, ты правильно вопрос формулируй.

Zabbix - это вообще более общая штука.
...
Рейтинг: 0 / 0
Java RMI. Балансировка нагрузки, резервирование
    #39227942
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может обычный http с keep alive + zookeper для discovery?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java RMI. Балансировка нагрузки, резервирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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