SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Четвертая	конференция	
разработчиков	ПО«DevParty»
2	апреля	2016	года,	Вологда
Дмитрий	Ивакин
Node.js:	realtime приложение	на	
примере	системы	управления	
очередью
ООО	«Пайлабс»
КомпонентыКомпоненты
Киоск
Табло Интерфейс	оператора
Интерфейс	администратора
Архитектура (сервер)Архитектура (сервер)
WebSocket
mongoose
Архитектура (табло)Архитектура (табло)
+	режим	киоска
Архитектура (табло)Архитектура (табло)
+	режим	киоска
Web	Audio	Api
+
Архитектура (киоск)Архитектура (киоск)
+	режим	киоска
Архитектура (киоск)Архитектура (киоск)
+	режим	киоска
Любимый	банк
А25
Получение	 наличных
Перед	вами	150	
человек
Архитектура (киоск)Архитектура (киоск)
Chrome	App
Любимый	банк
А25
Получение	 наличных
Перед	вами	150	
человек
Архитектура (киоск)Архитектура (киоск)
NW.js
Любимый	банк
А25
Получение	 наличных
Перед	вами	150	
человек
Архитектура (киоск)Архитектура (киоск)
Любимый	банк
А25
Получение	 наличных
Перед	вами	150	
человек
Electron
Архитектура (киоск)Архитектура (киоск)
NW.js
Любимый	банк
А25
Получение	 наличных
Перед	вами	150	
человек
Проблема	конкурентностиПроблема	конкурентности
А26 А25 А24
Очередь	А
А22
А23
Оператор	1
Оператор	2
Проблема	конкурентностиПроблема	конкурентности
А26 А25 А24
Очередь	А
Оператор	1
Оператор	2
Ticket.findOne({status:	‘waiting’})
Проблема	конкурентностиПроблема	конкурентности
А26 А25 А24
Очередь	А
Оператор	1
Оператор	2
Ticket.findOne({status:	‘waiting’})
А24
А24
ticket.status =	‘calling’;
ticket.workplace =	<id	оператора>;
ticket.save();
Проблема	конкурентностиПроблема	конкурентности
А26 А25 А24
Очередь	А
Оператор	1
Оператор	2
Ticket.findOne({status:	‘waiting’})
А24
А24
Ticket.findOneAndUpdate(
{id:	<ticketId>,	v:	<ticketVersion>},		– условие
{status:	‘calling’,	…,	v:	{$inc:	1}			}) – поля	для	обновления
Update	If	Current
Схема	развертыванияСхема	развертывания
Cluster	module
Thread Thread
Схема	развертыванияСхема	развертывания
Cluster	module
Thread Thread
Round-robin
Схема	развертыванияСхема	развертывания
Cluster	module
Thread Thread
Sticky-session
Схема	развертыванияСхема	развертывания
Thread Thread
Sticky-session
ip_hash;
Схема	развертыванияСхема	развертывания
Thread Thread
Sticky-session
cookie
Схема	развертыванияСхема	развертывания
Thread Thread
Sticky-session
Четвертая	конференция	
разработчиков	ПО«DevParty»
2	апреля	2016	года,	Вологда
Дмитрий	Ивакин
Спасибо	за	внимание!Спасибо	за	внимание!
ООО	«Пайлабс»
mpower.public@yandex.ru
Skype:	mpower.job

Más contenido relacionado

Destacado

Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...Dev_Party
 
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиИгорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиDev_Party
 
Игорь Цупко, Notamedia — Документация? Не слышал
Игорь Цупко, Notamedia — Документация? Не слышалИгорь Цупко, Notamedia — Документация? Не слышал
Игорь Цупко, Notamedia — Документация? Не слышалDev_Party
 
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...Dev_Party
 
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностейДенис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностейDev_Party
 
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Dev_Party
 
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep DiveАнна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep DiveDev_Party
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Dev_Party
 
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Dev_Party
 
Тестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаТестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаSQALab
 
Тестирование игр - особенности
Тестирование игр - особенностиТестирование игр - особенности
Тестирование игр - особенностиOlga Kiseleva
 
Тестирование игр - мифы
Тестирование игр - мифыТестирование игр - мифы
Тестирование игр - мифыOlga Kiseleva
 

Destacado (12)

Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
 
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиИгорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активности
 
Игорь Цупко, Notamedia — Документация? Не слышал
Игорь Цупко, Notamedia — Документация? Не слышалИгорь Цупко, Notamedia — Документация? Не слышал
Игорь Цупко, Notamedia — Документация? Не слышал
 
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
 
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностейДенис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
 
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
 
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep DiveАнна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
 
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
 
Тестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаТестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запуска
 
Тестирование игр - особенности
Тестирование игр - особенностиТестирование игр - особенности
Тестирование игр - особенности
 
Тестирование игр - мифы
Тестирование игр - мифыТестирование игр - мифы
Тестирование игр - мифы
 

Similar a Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере системы управления очередью

Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Лекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисЛекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисAnna Kraeva
 
Artsofte telecom competences (ru)
Artsofte telecom competences (ru)Artsofte telecom competences (ru)
Artsofte telecom competences (ru)Artsofte IT company
 
Телеком-компетенции от компании Artsofte
Телеком-компетенции от компании ArtsofteТелеком-компетенции от компании Artsofte
Телеком-компетенции от компании ArtsofteArtsofte IT company
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени. beshkenadze
 
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...QAFest
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...GeeksLab Odessa
 
NetBeans 6.0 Desktop
NetBeans 6.0 DesktopNetBeans 6.0 Desktop
NetBeans 6.0 DesktopIljas
 
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутриАлександр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри404fest
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Tanya Denisyuk
 
Netbeans Desktop Applications
Netbeans Desktop ApplicationsNetbeans Desktop Applications
Netbeans Desktop Applicationsscassau
 
Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"IT Event
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
EMC XtremIO: Зверь выходит на охоту
EMC XtremIO: Зверь выходит на охотуEMC XtremIO: Зверь выходит на охоту
EMC XtremIO: Зверь выходит на охотуКРОК
 
Интеграция информационных систем с использованием OpenSource ESB
Интеграция информационных систем с использованием OpenSource ESBИнтеграция информационных систем с использованием OpenSource ESB
Интеграция информационных систем с использованием OpenSource ESBКРОК
 
Практическое использование фабрики ACI
Практическое использование фабрики ACIПрактическое использование фабрики ACI
Практическое использование фабрики ACICisco Russia
 

Similar a Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере системы управления очередью (20)

Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Лекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисЛекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервис
 
Artsofte telecom competences (ru)
Artsofte telecom competences (ru)Artsofte telecom competences (ru)
Artsofte telecom competences (ru)
 
Телеком-компетенции от компании Artsofte
Телеком-компетенции от компании ArtsofteТелеком-компетенции от компании Artsofte
Телеком-компетенции от компании Artsofte
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
QA Fest 2017. Святослав Логин. Как провести тестирование на безопасность Web ...
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...
Многофункциональный сервер приложений, обеспечивающий среду запуска, и дающий...
 
NetBeans 6.0 Desktop
NetBeans 6.0 DesktopNetBeans 6.0 Desktop
NetBeans 6.0 Desktop
 
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутриАлександр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
 
Netbeans Desktop Applications
Netbeans Desktop ApplicationsNetbeans Desktop Applications
Netbeans Desktop Applications
 
Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
EMC XtremIO: Зверь выходит на охоту
EMC XtremIO: Зверь выходит на охотуEMC XtremIO: Зверь выходит на охоту
EMC XtremIO: Зверь выходит на охоту
 
Что нового в 11.0?
Что нового в 11.0?Что нового в 11.0?
Что нового в 11.0?
 
Интеграция информационных систем с использованием OpenSource ESB
Интеграция информационных систем с использованием OpenSource ESBИнтеграция информационных систем с использованием OpenSource ESB
Интеграция информационных систем с использованием OpenSource ESB
 
Практическое использование фабрики ACI
Практическое использование фабрики ACIПрактическое использование фабрики ACI
Практическое использование фабрики ACI
 

Más de Dev_Party

Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСРоман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСDev_Party
 
Владимир Варнавский, 33 Кита — Как запускать проекты вовремя
Владимир Варнавский, 33 Кита — Как запускать проекты вовремяВладимир Варнавский, 33 Кита — Как запускать проекты вовремя
Владимир Варнавский, 33 Кита — Как запускать проекты вовремяDev_Party
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)Dev_Party
 
Николай Мамадаев — Процесс создания дизайна мобильного приложения
Николай Мамадаев — Процесс создания дизайна мобильного приложения Николай Мамадаев — Процесс создания дизайна мобильного приложения
Николай Мамадаев — Процесс создания дизайна мобильного приложения Dev_Party
 
20% задач, которые дают 80% результата — главное при разработке коммерческих ...
20% задач, которые дают 80% результата — главное при разработке коммерческих ...20% задач, которые дают 80% результата — главное при разработке коммерческих ...
20% задач, которые дают 80% результата — главное при разработке коммерческих ...Dev_Party
 

Más de Dev_Party (6)

Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСРоман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
 
Владимир Варнавский, 33 Кита — Как запускать проекты вовремя
Владимир Варнавский, 33 Кита — Как запускать проекты вовремяВладимир Варнавский, 33 Кита — Как запускать проекты вовремя
Владимир Варнавский, 33 Кита — Как запускать проекты вовремя
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)
Александр Тарасов, Playrix — Продвижение мобильных приложений (user acquisition)
 
Николай Мамадаев — Процесс создания дизайна мобильного приложения
Николай Мамадаев — Процесс создания дизайна мобильного приложения Николай Мамадаев — Процесс создания дизайна мобильного приложения
Николай Мамадаев — Процесс создания дизайна мобильного приложения
 
20% задач, которые дают 80% результата — главное при разработке коммерческих ...
20% задач, которые дают 80% результата — главное при разработке коммерческих ...20% задач, которые дают 80% результата — главное при разработке коммерческих ...
20% задач, которые дают 80% результата — главное при разработке коммерческих ...
 

Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере системы управления очередью