Привет, Хабр!
В статье я опишу свой небольшой open-source проект — Centrifuge (далее Центрифуга). Это сервер на Python, задача которого — рассылка (broadcast) сообщений в реальном времени подключенным (в основном из браузера) клиентам.
Это будет история, наполненная как личными эмоциями, так и описанием используемых технологий, но без примеров кода. Если вам близка тема — не проходите мимо, будет любопытно.
Для начала, посмотрите, пожалуйста, скринкаст (не забудьте включить субтитры), если после просмотра интерес не пропадет, смело читайте дальше!
Читать дальше →
Не так давно, разрабатывая очередной программный продукт, наша команда разработчиков столкнулись с задачей реализации полноценной системы синхронизации пользовательских данных в реальном времени, путем рассылки (PUSH метод) изменений сервером. В самом приложении объем данных был не велик, но они могли просматриваться несколькими пользователями одновременно. Поэтому нам был необходим легковесный и достаточно производительный подход к синхронизации данных в рамках Веб-приложения. После того как были рассмотрены различные пути к решению этой задачи, мы остановили свой выбор на достаточно популярном эмуляторе WebSocket’ов – SockJS, который использует различные алгоритмы обмена данными между клиентом и сервером, в зависимости от браузера, которым пользуется клиент. В рамках данной статьи я не буду заострять внимание на том, почему был сделан именно такой выбор (по этому поводу написано немало статей, в том числе и на хабрахабре), а просто скажу, что мы ещё ни разу об этом не пожалели.
Новая международная геоинформационная социальная сеть EVAplacer набирает команду разработчиков.
Новая международная геоинформационная социальная сеть EVAplacer набирает команду разработчиков.
Новая международная геоинформационная социальная сеть EVAplacer набирает команду разработчиков.
Если бы не Александр Соловьев, то я бы прошел мимо Mongrel2. А всё потому, что первый Mongrel был Ruby-специфичным инструментом и никогда особо меня не интересовал.
Другое дело Mongrel2. Во-первых, он написан на C. Во-вторых, он не привязан ни к какому из языков. В-третьих, он использует ZeroMQ как транспорт.
По сути, Mongrel2 это балансирующий прокси, который парсит http и отдает запросы в виде сообщений в ZeroMQ и так же получает ответы.
Mongrel2 интересен несколькими моментами.
Быстрый. Все операции по парсингу http (сам Mongrel2) и передачи сообщений (ZeroMQ) берет на себя быстрый C-код.
Не привязан к языкам По сути, всё что вам нужно, чтобы начать работать с mongrel - это биндинг к ZeroMQ, которые есть для всех более-менее мажорных языков. Так что используя любой