Javascript.RU

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

Node.js и задержки с доставкой сообщений
Всем привет!
Есть Node.js, есть Redis и каналы для подписки на сообщения.
Взаимодействие происходит между бэкэндом и мобильныи устройствами
В тестовом режиме(нагрузок нет) создаеться коннект.
Идет отправка сообщений, например каждые 10 сек.
Бывают моменты, когда устройство(мобильное) покидает зону хорошего интернета. В результате мы отправили допустим 70 сообщений и устройство вроде как должно последовательно их обработать, а устройства не получает сообщения скажем 10 минут и затем получает пачку сообщений. Т.е. сообщения приходят, но есть большая задержка.
Может кто то сталкивался. Может можно как то уменьшить задержку или есть какие то варианты и решения?
Куда копать, есть ли идеи?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2013, 20:53
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Здесь 2 проблемы
Сообщение от IgorN
Бывают моменты, когда устройство(мобильное) покидает зону хорошего интернета. В результате мы отправили допустим 70 сообщений и устройство вроде как должно последовательно их обработать, а устройства не получает сообщения скажем 10 минут и затем получает пачку сообщений.
Да уж, смешал всё что можно:
здесь как минимум 2 проблемы
1 мобильные устройства при пропадании, отсутствии инета копят , а затем когда появляется инет отправляют накопленное
2- архитектура как себя поведёт при 100 таких устройств ? особенно с тормозами на средине приёма/передачи?

Последний раз редактировалось dmitriymar, 11.04.2013 в 21:46.
Ответить с цитированием
  #3 (permalink)  
Старый 12.04.2013, 12:09
Аспирант
Отправить личное сообщение для IgorN Посмотреть профиль Найти все сообщения от IgorN
 
Регистрация: 26.11.2008
Сообщений: 35

Спасибо за ответ!
1. а как они копят? Я же с сервака шлю сообщения, и сообщения все доходят, но потом приложение их пачкой принимает. Т.е. поидее если бы устройство было бы отключено от инета, сокет оборвался бы и сообщение не пришло бы. А в данном случаее устройство принимает все, но не отдает сразу при плохом канале.
Может я не догнал чего
2. А причем тут архитектура и бэкэнд? Задача бэкэнда послать, а что там происходит уже не особо имеет значение для бэкэнда.
Ответить с цитированием
  #4 (permalink)  
Старый 12.04.2013, 13:22
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от IgorN
А причем тут архитектура и бэкэнд? Задача бэкэнда послать, а что там происходит уже не особо имеет значение для бэкэнда.
а ресурсы сервера значит резиновые?

Сообщение от IgorN
1. а как они копят? Я же с сервака шлю сообщения, и сообщения все доходят, но потом приложение их пачкой принимает. Т.е. поидее если бы устройство было бы отключено от инета, сокет оборвался бы и сообщение не пришло бы. А в данном случаее устройство принимает все, но не отдает сразу при плохом канале.
И где здесь видно что это сокетное соединение и инициирует событие сервер?
Сообщение от IgorN
Взаимодействие происходит между бэкэндом и мобильныи устройствами
В тестовом режиме(нагрузок нет) создаеться коннект.
Идет отправка сообщений, например каждые 10 сек.
Бывают моменты, когда устройство(мобильное) покидает зону хорошего интернета. В результате мы отправили допустим 70 сообщений и устройство вроде как должно последовательно их обработать, а устройства не получает сообщения скажем 10 минут и затем получает пачку сообщений. Т.е. сообщения приходят, но есть большая задержка.
Повторю ещё раз - ресурсы сервера резиновые ? Нода стала на манер рнр -сколько запросов столько экземпляров запущенно (в пределах разумного)? чтоб это было так -
Сообщение от IgorN
. А причем тут архитектура и бэкэнд? Задача бэкэнда послать, а что там происходит уже не особо имеет значение для бэкэнда.
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2013, 16:47
Аспирант
Отправить личное сообщение для IgorN Посмотреть профиль Найти все сообщения от IgorN
 
Регистрация: 26.11.2008
Сообщений: 35

Соединение сокетное, инициирет событие клиентское приложение, когда включаеться. Создаеться коннект с сервером + подписка на канал куда и посылаються сообщения. Стандартная схема вроде.
Запущен один экземпляр ноды. Ее роль следить за очередью сообщений и если там что то появилось то послать клиентскому приложению.

А какая нагрузка в контексте данной задачи идет на сервер?
+ в данном случае нагрузка это один коннект, так как просто тестирование.

Может я чего не понимаю или не правильно описал...

P.S. А зачем запускать новый инстанц ноды на каждое соединение?
Или я не верно понял фразу "рнр -сколько запросов столько экземпляров запущенно"
Ответить с цитированием
  #6 (permalink)  
Старый 12.04.2013, 17:09
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

IgorN,
Добро пожаловать в гугл, читать всё и как работает нода и как сервера , и что ресурсы серверов не резиновые и как они себя ведут при превышении допустимых лимитов - вобщем абсолютно всё.
Сообщение от IgorN
Соединение сокетное, инициирет событие клиентское приложение, когда включаеться.
здорово, а как может сервер инициировать соединение не зная клиента -никак?
так зачем вы пишите лишнюю информацию не указывая основную?
есть ли балансировщик перед нодой, используется ли асинхронный стиль или синхронный, разрываете ли поток выполнения c помошью setImmediate, какие алгоритмы используются и прочее
а так, только через пять сообщений выясняется что это сокетное соединение -будто бы других не существует в природе

элементарная же вещь делать выводы в консоль, в файл, в лог -чтоб просмотреть и понять причину, понять как работает нода с алгоритмом, ошибки алгоритма и прочее.

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

Последний раз редактировалось dmitriymar, 12.04.2013 в 21:32.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Недопонимание философии Node.js Voronar AJAX и COMET 10 25.02.2013 14:00
Востребованность разработчиков на Node.js danik.js AJAX и COMET 7 08.12.2012 22:49
Разработчик Node.js в США (Сиэтл) Akvelon Работа 0 29.08.2012 10:47
Логика звукового уведомления о поступлении новых сообщений Триви AJAX и COMET 1 11.08.2011 02:13
Node.js Kolyaj Серверные языки и технологии 49 24.05.2010 22:29