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

Архитектура приблизительно такая: есть некий сервер, который принимает соединения. Обработав соединения, он отправляет на обработку уже полученные данные.
Хотелось бы сделать сделать сервер горизонтально масштабируемым, то есть чтобы обработкой данных занимались другие сервера, которые возможно будут находится на удалённых машинах.

Как вы считаете, допустима ли подобная архитектура? Если особых нареканий нет, подскажите как организовать межсерверное взаимодействие. Подойдёт ли для эти целей RMI? Возможно, есть какой-нибудь удобный фреймворк для подобных задач?
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167774
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverЗадача - написать Application Server.
Архитектура приблизительно такая: есть некий сервер,
дак есть или нужно написать? И что именно есть приведите полное название и версию.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167785
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverАрхитектура приблизительно такая: есть некий сервер, который принимает соединения. Обработав соединения, он отправляет на обработку уже полученные данные.

load balancer + single point of failure

DoSOfRedRiverХотелось бы сделать сделать сервер горизонтально масштабируемым, то есть чтобы обработкой данных занимались другие сервера, которые возможно будут находится на удалённых машинах.

Не понятно, нужна ли избытачность, например, для 24x7 или только масштабируемость?
Нужно ли разбирвать сложные задачи (Map\Reduce) или просто обрабатывать запросы пользователей?

DoSOfRedRiverКак вы считаете, допустима ли подобная архитектура?

Нет тут пока никакой архитектуры.

DoSOfRedRiverЕсли особых нареканий нет, подскажите как организовать межсерверное взаимодействие. Подойдёт ли для эти целей RMI? Возможно, есть какой-нибудь удобный фреймворк для подобных задач?
Хорошо бы с задачей, для начала, определится. А то, как обычно, на форумах, предалгается решение не известно какой проблемы и угадывай что же оно решает.

RMI, скорее, нафиг не нужен. Или сразу к JEE стэку привязываться, брать EJB+JMS и готовую кластеризацию JEE сервера.
Либо полностью писать своё решение для того чтобы максимально выжать всё возможное - NIO сокет сервер, кастомная кластеризация на jgroups, terracotta и т.п. Быстрая сериализация типа protobuf.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167915
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Находится в разработке, так сказать. Он почти готов, но вот как раз закрались сомнения по поводу правильности данного решения.

BlazkowiczНужно ли разбирвать сложные задачи (Map\Reduce) или просто обрабатывать запросы пользователей?

Простая обработка. Данные лежать в BlockingQueue, оттуда хэндлер(ы) их достают, и обрабатывают.

BlazkowiczRMI, скорее, нафиг не нужен. Или сразу к JEE стэку привязываться, брать EJB+JMS и готовую кластеризацию JEE сервера.
Либо полностью писать своё решение для того чтобы максимально выжать всё возможное - NIO сокет сервер, кастомная кластеризация на jgroups, terracotta и т.п. Быстрая сериализация типа protobuf.

Скорее, свою решение.
Сервер на Netty.
Насчёт protobuf думал, но как то не решился.

BlazkowiczХорошо бы с задачей, для начала, определится.

Ну дык вот она задача: распараллелить обработку на несколько серверов. Вернее, предусмотреть такую возможность.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167922
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverНу дык вот она задача: распараллелить обработку на несколько серверов. Вернее, предусмотреть такую возможность.
Метод - "кластеризация" не оно?
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167940
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverПростая обработка. Данные лежать в BlockingQueue, оттуда хэндлер(ы) их достают, и обрабатывают.

И при штатной\не штатоной перезагрузке сервер с очередью что происходит?

DoSOfRedRiverНу дык вот она задача: распараллелить обработку на несколько серверов. Вернее, предусмотреть такую возможность.
ОК. "распараллелить" значит взять одну задачу и паралельно исполнять разные её части. Это Map\Reduce. Фреймверков валом.
Обрабатывать запросы разных пользователей разными серверами это банальный load balancing. Тоже есть готовые решения.
Что именно у вас вкладываестся в "распараллелить" - придут телепаты и объяснят. Я с утра туплю и не понимаю.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38167944
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168023
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Наверное оно. Но я не владею глубокими познаниями в разработке высоко нагруженных серверов. Может подскажете, как, или чем это реализовать?



buldozer01,

Мне кажется Netty здесь уместней будет.

BlazkowiczИ при штатной\не штатоной перезагрузке сервер с очередью что происходит?

Ничего. Запросы нужны обрабатывать либо сразу, либо вообще не обрабатывать, потому что Аякс.

BlazkowiczОК. "распараллелить" значит взять одну задачу и паралельно исполнять разные её части. Это Map\Reduce. Фреймверков валом.
Обрабатывать запросы разных пользователей разными серверами это банальный load balancing. Тоже есть готовые решения.

Ну вот же:

DoSOfRedRiverХотелось бы сделать сделать сервер горизонтально масштабируемым, то есть чтобы обработкой данных занимались другие сервера

DoSOfRedRiverесть некий сервер, который принимает соединения. Обработав соединения, он отправляет на обработку уже полученные данные.

DoSOfRedRiverДанные лежать в BlockingQueue, оттуда хэндлер(ы) их достают, и обрабатывают.

Хэндлеры исполняются на этом самом кластере, то есть на бэкэнд серверах. Извините, если я не понятно выражаюсь.

По поводу "готовых решений". Может вы поделитесь?

Проблемы у меня возникли с sharing memory и системой обмена сообщениями, потому как опыта разработки подобных приложений у меня нет почти.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168029
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiver,
а задачу на куски как бить будете? Конечная цель и тест-пример "для параллелить" есть?
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168045
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverНичего. Запросы нужны обрабатывать либо сразу, либо вообще не обрабатывать, потому что Аякс.

Ну, т.е. юзеры дружно встали и пошли на юг, пока сервер бутается.

DoSOfRedRiverПо поводу "готовых решений". Может вы поделитесь?

jgroups, ну и гугл -> java load balancer для ещё пачки вариантов.

DoSOfRedRiverПроблемы у меня возникли с sharing memory
terracota
DoSOfRedRiverи системой обмена сообщениями, потому как опыта разработки подобных приложений у меня нет почти.
А зачем shared memory и сообщения в вашей архитектуре? balancer отдал запрос ноде и пусть та обрабатывает.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168134
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Не нужно разбивать задачу, нужно эти самые задачи выполнять параллельно использую все свободные ресурсы.

Пришёл запрос1, 2, 3, 4. Аццептор обработал соединение, положил задачи в очередь. Когда освобождается некий ресурс (сервер, поток), он берёт из очереди данные, и выполняет обработку.

BlazkowiczНу, т.е. юзеры дружно встали и пошли на юг, пока сервер бутается

Это уже не моя проблема. В ТЗ не стоит задачи реализовать SPOF и другие механизмы отказоустойчивости.

BlazkowiczА зачем shared memory и сообщения в вашей архитектуре? balancer отдал запрос ноде и пусть та обрабатывает.

Ну это возможные пути решения проблемы. В процессе проектирования уже можно сделать выбор в пользу shared memory, например.
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168137
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiver,

>> Мне кажется Netty здесь уместней будет.

Откуда такая уверенность ?
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168158
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverPetro123,
Не нужно разбивать задачу, нужно эти самые задачи выполнять параллельно использую все свободные ресурсы.
Пришёл запрос1, 2, 3, 4. Аццептор обработал соединение, положил задачи в очередь. Когда освобождается некий ресурс (сервер, поток), он берёт из очереди данные, и выполняет обработку.
я имел ввиду делить общую задачу. Это как у транзакции - неделимость и атомарность куска.
Теперь понятно, что:
- очерёдность кусков-запросов не имеет значения
- нагрузка в виде запросов
- каждый запрос - одна транзакция.
imho
...
Рейтинг: 0 / 0
Горизонтальное масштабирование. Межсерверная связь.
    #38168189
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01,

Я им уже пользуюсь. Мне нравится, недостатков пока ни каких не нашёл. Похоже, там есть всё, что мне нужно. И примеров в сети много, на русском в том числе.



Petro123,

Вообщем то вы правы, да.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Горизонтальное масштабирование. Межсерверная связь.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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