Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование и дублирование ява-сервера / 6 сообщений из 6, страница 1 из 1
07.04.2013, 17:12:30
    #38216189
max_drmick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
Добрый день, уважаемые форумчане!

Существует сокет-сервер написанный на яве для игрового приложения.
На сервере хранятся хешмапы о текущих игроках в сети, подгруженные объекты, которые используются на глобальной карте итп.

Возникают вопросы:

1) в масштабируемости - если сервер начнет не справляться с нагрузкой, то вероятнее всего его придется расширять на несколько машин. Как это реализуется? Есть какой-то готовый велосипед или его придется собирать самому?

2) если сервер загнется, то должен быть какой-то дублирующий сервер, а соответственно на него нужно постоянно реплицировать эти мапы, переменные и прочую игровую динамику. Как этого добиться? Может быть есть какие-то туториалы? Никак не могу найти инфу.

Господа, если кто-либо сталкивался с такими задачами, опишите пожалуйста как быть, хочется решить эти потенциальные проблемы на начальном этапе.

Спасибо.
...
Рейтинг: 0 / 0
07.04.2013, 17:47:00
    #38216218
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
max_drmick,
И несколько хостингов есть? Или это теория на начальном этапе?
...
Рейтинг: 0 / 0
07.04.2013, 17:53:17
    #38216231
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
Terracota посмотри, сам не юзал, но отзывы неплохие
...
Рейтинг: 0 / 0
07.04.2013, 18:06:56
    #38216239
max_drmick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
Petro123, пока один, но будет несколько.

забыл ник, спасибо большое, почитаю про это
...
Рейтинг: 0 / 0
09.04.2013, 09:34:31
    #38218202
Сено
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
Готовых велосипедов нет. Вернее, формально они есть, но out-of-the-box никогда не работают. Общие принципы таковы:
1) Минимизировать сессионную информацию.
2) Реплицировать сессионную информацию (в идеале - таковой информации быть не должно, но это редко достижимо)
3) Хранить данные в распределенном кэше. Решений на эту тему уйма. Ищите в гугле по ключевым словам "distributed cache java", "replicated cace java", "partitioned cache java", "distributed hashmap java" и т.д.
4) Иметь load-balancer и reverse proxy.

Все эти шаги опциональны и очень сильно зависят от конкретного решения и требований.

Сходу можете почитать про Hazelcast, JBoss Cache, Gemfire, Terracota, Gridgain, memcached - они все в том или ином виде используются для решения подобных задач.
...
Рейтинг: 0 / 0
09.04.2013, 09:42:36
    #38218216
Сено
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабирование и дублирование ява-сервера
А, ну и, разумеется, не надо циклиться исключительно на application layer. Есть куча всяких фишек и на стороне персистенса. Шардинг, NoSQL хранилища и т.д.

Я, например, в самом ближайшем времени буду решать задачу, аналогичную вашей. Плотно еще этим не занимался, но пока в голове такая картинка:
1) Шардинг данных (пока хз как - тупо по хешкоду, по географии или по каким-то иным атрибутам) в MongoDB с репликацией. MongoDB - потому что у меня данные ну уж очень хорошо в нее ложатся.
2) Сессионные данные хранить либо в in-memory cache (Hazelcast, memcached), либо в СУБД - тут нужно плотно подумать будет, побенчмаркать.
3) Обратный прокси, с роутингом по тому же принципу, по которому будет организован шардинг.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование и дублирование ява-сервера / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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