29
Centrifugo Open-source сервер real-time сообщений Емелин Александр, v0.4

Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

  • Upload
    ontico

  • View
    336

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

CentrifugoOpen-source сервер real-time сообщений

Емелин Александр, v0.4

Page 2: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

REAL-TIME СООБЩЕНИЯ

Сообщение о событии, доставленное клиенту в кратчайшие сроки после возникновения

Page 3: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 4: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

НЕОБХОДИМОСТЬ

Page 5: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ВАУ-ЭФФЕКТ

Page 6: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ПОЯВЛЯЕТСЯ КОНТЕНТ

Создаютпользователи

Создает бэкенд автоматически

Page 7: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

Page 8: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

• long-polling (xhr/xdr-polling)

Page 9: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

• long-polling (xhr/xdr-polling)• xhr/xdr-streaming

Page 10: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)

Page 11: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets

Page 12: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 13: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?

• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets•HTTP/2?

Page 14: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

БИБЛИОТЕКИ-ПОЛИФИЛЛЫ

Socket.io SockJS

и другие…

Page 15: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 16: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

http://www.leggetter.co.uk/real-time-web-technologies-guide/

REAL-TIME WEB TECHNOLOGIES GUIDE

Page 17: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

С ПОЗИЦИИ PYTHON-ПРОГРАММИСТА

• Асинхронный фреймворк (Tornado, asyncio)• Gevent – патчим стандартную библиотеку• Nginx-push-stream-module• Hosted-сервер с API (dklab_realplexor, LightStreamer)• Облачный сервис с API (pusher.com, pubnub.com)• Django-channels

Page 18: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 19: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

Python GoCentrifuge Centrifugo

Page 20: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 21: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ПРОСТОТА ИНТЕГРАЦИИ

Page 22: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ИСПОЛЬЗОВАНИЕ В БРАУЗЕРЕ

Page 23: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

REAL-TIME ОСОБЕННОСТИ

•Активные подключения в канале•События подписки на канал/отписки от канала •История сообщения в канале•Восстановление пропущенных сообщений• Разные типы каналов

Page 24: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ОСОБЕННОСТИ

•Возможность масштабирования на несколько машин с помощью Redis PUB/SUB

•Метрики для мониторинга• Готовые RPM/DEB пакеты, Docker-контейнер•Административный веб-интерфейс

Page 25: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)
Page 26: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

HTTP API БИБЛИОТЕКИ

Python Ruby

PHP Go NodeJS

Просто написать для другого языка

https://github.com/centrifugal

Page 28: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ССЫЛКИ НА ПРОЕКТ

• Документация https://fzambia.gitbooks.io/centrifugal/content/

• Организация на Github https://github.com/centrifugal

• Демо-инстанс (пароль: demo) https://centrifugo.herokuapp.com

Page 29: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)

ПАСИБО!