Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Правильно ли построена архитектура? (https://javascript.ru/forum/server/33911-pravilno-li-postroena-arkhitektura.html)

faraday 13.12.2012 21:18

Правильно ли построена архитектура?
 
Вложений: 1
Здравствуйте, никогда раньше не занимался серверными технологиями, но тут возникла необходимость создать высоконагруженный сервер для флеш приложения, с несколькими тысячами пользователей одновременно. Пару дней по изучал что к чему, и вот нарисовал схему как я себе это представляю. Задача: пользователь подключен сокетом к node.js , который управляет всей игровой логикой, по необходимости считывая или записывая в БД. вся статика выдаётся и сохраняется через nginx. Вопрос заключается в том, правильно ли построена система и выдержит ли большую нагрузку(сама логика игры не особо сложна, но коннектов будет несколько тысяч)

DjDiablo 13.12.2012 22:19

игра пошаговая/или реалтайм ?

Можно поподробне про взаимодействие PHP и node, имеет ли нода прямой доступ к бд (на схемке я этого невижу) ?

faraday 13.12.2012 22:43

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

DjDiablo 13.12.2012 22:53

Что касается ноды то с бд однозначно лучше напрямую без посредников.

Помимо логирования, наверно будет ещё загрузка игровой ситуации пользователя, когда пользователь только подключился. Как я понимаю.

если ты планируешь записывать в бд каждое действие игрока, то это необязательно делать. К примеру в онлайн игре домовята, есть кнопочка сохранить, если ненажать то прогресс будет утерян. Зато пока пользователь ни нажмёт, сервер БД недёргает.

Одним словом
Я вижу слабое место в PHP прослойке, при логе каждого действия нагрузка на PHP будет больше чем на саму ноду. Так что апач с php лучше обрулить как мне кажется и работать напрямую с бд.

Опять же текущую игровую ситуацию желательно бы хранить в памяти nodejs (впрочем это очевидно,), как я понимаю до 500мб проблем быть недолжно, и выгружать в бд только по мере необходимости (в случае разрыва соединения к примеру/ по нажатию кнопки save/ другие варианты ).

faraday 13.12.2012 23:16

Спасибо, да весь процесс игры будет храниться в памяти. В базу будут скидываться только результаты.
Сохранение файлов тоже лучше выполнять без апача?

DjDiablo 13.12.2012 23:24

ХЗ если чесно.
Если нода и апач физически отделены, то логично повесить файлы на апач, рагрузив таким образом сервак с нодой.Ну а если всё на одной машине то я хз что быстрее, да и вобще хз насколько PHP шная часть будет давать нагрузку на этот общий сервак, и что в этом случае на апач можно вешать.

ну и опятьже ХЗ чо за файлы, вобще непонятно откуда потребность в их сохранении в браузерной игре.

faraday 13.12.2012 23:39

Фотографии, аудио. Просто стоит ли ради этого держать апач...

faraday 17.12.2012 14:06

DjDiablo, а если нужно при коннекте получать из базы данные пользователя по айди, а если там их нету то обратиться к php файлу и вернуть оттуда. тут Уже без апача не обойтись?
(php файл будет обращаться к vk.api и получать оттуда)

DjDiablo 17.12.2012 15:19

я невижу критических преград для использования VK api из ноды.
что касается хранения картинок то не могу порекомендовать что либо, нужно искать в сети бенчмарки.


Часовой пояс GMT +3, время: 21:06.