Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.12.2012, 21:18
Аспирант
Отправить личное сообщение для faraday Посмотреть профиль Найти все сообщения от faraday
 
Регистрация: 10.03.2012
Сообщений: 50

Правильно ли построена архитектура?
Здравствуйте, никогда раньше не занимался серверными технологиями, но тут возникла необходимость создать высоконагруженный сервер для флеш приложения, с несколькими тысячами пользователей одновременно. Пару дней по изучал что к чему, и вот нарисовал схему как я себе это представляю. Задача: пользователь подключен сокетом к node.js , который управляет всей игровой логикой, по необходимости считывая или записывая в БД. вся статика выдаётся и сохраняется через nginx. Вопрос заключается в том, правильно ли построена система и выдержит ли большую нагрузку(сама логика игры не особо сложна, но коннектов будет несколько тысяч)
Изображения:
Тип файла: jpg schemeData.jpg (22.2 Кб, 17 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 13.12.2012, 22:19
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

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

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

Последний раз редактировалось DjDiablo, 13.12.2012 в 22:40.
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2012, 22:43
Аспирант
Отправить личное сообщение для faraday Посмотреть профиль Найти все сообщения от faraday
 
Регистрация: 10.03.2012
Сообщений: 50

Пошаговая, в больше части функционал типа отправить подарок, сообщение.
Нода обращается у меня к php через апач, В основном для логирования действий.
Вообще не знаю стоит ли ставить апач для работы с бд и сохранения картинок, аудио, можно вроде обойтись и без него.
Ответить с цитированием
  #4 (permalink)  
Старый 13.12.2012, 22:53
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

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

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

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

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

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

Последний раз редактировалось DjDiablo, 13.12.2012 в 23:14.
Ответить с цитированием
  #5 (permalink)  
Старый 13.12.2012, 23:16
Аспирант
Отправить личное сообщение для faraday Посмотреть профиль Найти все сообщения от faraday
 
Регистрация: 10.03.2012
Сообщений: 50

Спасибо, да весь процесс игры будет храниться в памяти. В базу будут скидываться только результаты.
Сохранение файлов тоже лучше выполнять без апача?
Ответить с цитированием
  #6 (permalink)  
Старый 13.12.2012, 23:24
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

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

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

Последний раз редактировалось DjDiablo, 13.12.2012 в 23:57.
Ответить с цитированием
  #7 (permalink)  
Старый 13.12.2012, 23:39
Аспирант
Отправить личное сообщение для faraday Посмотреть профиль Найти все сообщения от faraday
 
Регистрация: 10.03.2012
Сообщений: 50

Фотографии, аудио. Просто стоит ли ради этого держать апач...
Ответить с цитированием
  #8 (permalink)  
Старый 17.12.2012, 14:06
Аспирант
Отправить личное сообщение для faraday Посмотреть профиль Найти все сообщения от faraday
 
Регистрация: 10.03.2012
Сообщений: 50

DjDiablo, а если нужно при коннекте получать из базы данные пользователя по айди, а если там их нету то обратиться к php файлу и вернуть оттуда. тут Уже без апача не обойтись?
(php файл будет обращаться к vk.api и получать оттуда)
Ответить с цитированием
  #9 (permalink)  
Старый 17.12.2012, 15:19
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

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

Последний раз редактировалось DjDiablo, 17.12.2012 в 15:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно отслеживать вставку html() bombascter jQuery 15 20.11.2012 09:47
Как правильно заменить подстроку. Ogara Общие вопросы Javascript 3 13.07.2012 03:12
Как правильно спроектировать приложение? Alex Danilov ExtJS 7 22.05.2012 19:00
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20