|
|
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые форумчане! Существует сокет-сервер написанный на яве для игрового приложения. На сервере хранятся хешмапы о текущих игроках в сети, подгруженные объекты, которые используются на глобальной карте итп. Возникают вопросы: 1) в масштабируемости - если сервер начнет не справляться с нагрузкой, то вероятнее всего его придется расширять на несколько машин. Как это реализуется? Есть какой-то готовый велосипед или его придется собирать самому? 2) если сервер загнется, то должен быть какой-то дублирующий сервер, а соответственно на него нужно постоянно реплицировать эти мапы, переменные и прочую игровую динамику. Как этого добиться? Может быть есть какие-то туториалы? Никак не могу найти инфу. Господа, если кто-либо сталкивался с такими задачами, опишите пожалуйста как быть, хочется решить эти потенциальные проблемы на начальном этапе. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 17:12:30 |
|
||
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
max_drmick, И несколько хостингов есть? Или это теория на начальном этапе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 17:47:00 |
|
||
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
Terracota посмотри, сам не юзал, но отзывы неплохие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 17:53:17 |
|
||
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
Petro123, пока один, но будет несколько. забыл ник, спасибо большое, почитаю про это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 18:06:56 |
|
||
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
Готовых велосипедов нет. Вернее, формально они есть, но 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 - они все в том или ином виде используются для решения подобных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2013, 09:34:31 |
|
||
|
Масштабирование и дублирование ява-сервера
|
|||
|---|---|---|---|
|
#18+
А, ну и, разумеется, не надо циклиться исключительно на application layer. Есть куча всяких фишек и на стороне персистенса. Шардинг, NoSQL хранилища и т.д. Я, например, в самом ближайшем времени буду решать задачу, аналогичную вашей. Плотно еще этим не занимался, но пока в голове такая картинка: 1) Шардинг данных (пока хз как - тупо по хешкоду, по географии или по каким-то иным атрибутам) в MongoDB с репликацией. MongoDB - потому что у меня данные ну уж очень хорошо в нее ложатся. 2) Сессионные данные хранить либо в in-memory cache (Hazelcast, memcached), либо в СУБД - тут нужно плотно подумать будет, побенчмаркать. 3) Обратный прокси, с роутингом по тому же принципу, по которому будет организован шардинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2013, 09:42:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38216239&tid=2129589]: |
0ms |
get settings: |
19ms |
get forum list: |
29ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
63ms |
get topic data: |
22ms |
get forum data: |
5ms |
get page messages: |
85ms |
get tp. blocked users: |
3ms |
| others: | 314ms |
| total: | 554ms |

| 0 / 0 |
