Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

AMQP по-русски

Разработка веб-сайтов
Сегодня довольно мало информации о протоколе AMQP (Advanced Message Queueing Protocol) и его применении, особенно на русском языке. А вообще это — замечательный, уже достаточно широко поддерживаемый открытый протокол для передачи сообщений между компонентами системы с низкой задержкой и на высокой скорости. При этом семантика обмена сообщениями настраивается под нужды конкретного проекта. Такие решения существовали и ранее, но это первый стандарт, для которого существует большое количество свободных реализаций.

Основная идея состоит в том, что отдельные подсистемы (или независимые приложения) могут обмениваться произвольным образом сообщениями через AMQP-брокер, который осуществляет маршрутизацию, возможно гарантирует доставку, распределение потоков данных, подписку на нужные типы сообщений. В качестве классических примеров обычно приводятся финансовые приложения, связанные, например, с доставкой потребителям информации о курсах ценных бумаг в режиме реального времени, также возможно RPC-взаимодействие двух подсистем, которые не имеют связи друг с другом (взаимодействие через общий протокол AMQP) и так далее и тому подобное.

Сегодня тема доставки информации в реальном времени является крайне актуальной (достаточно вспомнить хотя бы Twitter, Google Wave). И здесь системы передачи сообщений могут служить внутренним механизмом обмена данными, который обеспечивает доставку данных (изменений данных) клиентам.

Я не ставлю своей целью сегодня рассказать о том, как писать приложения для AMQP. Хочу лишь немного рассказать о том, что это совсем не страшно, не очень сложно, и действительно работает, хотя стандарт находится еще в развитии, выходят новые версии протокола, брокеров и т.п. Но это уже вполне production-quality. Расскажу лишь базовые советы, чтобы помочь “въехать” в протокол.
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Просмотры64.1K
Комментарии 31

RabbitMQ: Введение в AMQP

Erlang/OTP
Построение больших и сложных систем всегда связано с решением проблем обмена данными между различными их узлами. Дополнительные трудности вносят такие факторы, как требования к отказоустойчивости, географическое разнесение подсистем, наличие узлов, взаимодействующих сразу с несколькими другими. Не всегда удобно использовать пресловутую систему клиент-сервер, да и архитектура точка-точка может оказаться не самым подходящим представлением связей.

Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры51K
Комментарии 15

Клон omegle.com: pogovorisomnoi.ru

Я пиарюсь

Поговори со мной.ru


Мы не будем рассказывать о синдроме незнакомца, а просто скажем, что запустили небольшой проект поговори со мной.ру, весьма откровенный клон англоязычного сервиса omegle.com.
Сервис позволяет общаться с одним случайно выбранным посетителем сайта анонимно один на один. И главное! У нас есть печеньки звуковое оповещение о сообщениях :)
Читать дальше →
Всего голосов 68: ↑47 и ↓21 +26
Просмотры4.3K
Комментарии 113

AMQP теперь и в PHP

Чулан
типа Введение
Протокол AMQP хорошо был описан в статьях AMQP по русски, RabbitMQ: Введение в AMQP AMQP — практика использования и мне не хотелось бы повторяться.

AMQP используется в серверах очередей: ZeroMQ, ActiveMQ, RabbitMQ.

Преимущество RabbitMQ перед прочим свободным ПО:
— более полно представлен протокол,
— поддерживает кластер,
— реализован как многопоточный сервер, высокая производительность

Широкое распространение AMQP в WEB разработках разработках сдерживается двумя причинами: отсутствием необходимых навыков (практики) его использования и малой клиентской поддержкой. В основном есть клиенты на языках с, java, python, с#. Большая популярность РНР в WEB разработках жалала бы видеть и свой AMQP-клиент.
Читать дальше →
Всего голосов 19: ↑12 и ↓7 +5
Просмотры5.1K
Комментарии 15

Новые идеи по АПИ RabbitMQ AMQP для PHP

Чулан
Недавно опубликовал разработанное ранее PHP API для RabbitMQ «AMQP теперь и для РНР»

При обсуждении было предложено сделать PHP API более объектной моделью,
более близкой к модели, предложенной в Протоколе AMQP.

Код немного усложнится, но объектная модель будет более красивой,

Прежде чем перейти к кодированию, представляю на обсуждение новое API
Читать дальше →
Всего голосов 8: ↑5 и ↓3 +2
Просмотры1.1K
Комментарии 3

AMQP-PHP чат

Разработка веб-сайтов
Вот, дошел до первого практического воплощения моих первых двух статей. Далее будут изложены только идеи… Идеи уже воплощенные и идеи, которые воплощаются…

В отличие от других протоколов передачи сообщений (XMPP STOMP или Memcache (MemcacheQ)) AMQP обладает большей гибкостью.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры8.3K
Комментарии 19

Alice — REST Мониторинг RabbitMQ

Разработка веб-сайтов
Собственно столкнулся с проблемой, что при использовании RabbitMQ необходимо мониторить сервер. Системную утилиту rabbitmqctl можно запускать из командной строки, но запустить ее из приложения не получилось. Что-то связанное с окружением эрланга.

После небольшого гугления и общения в целевых форумал получил заветную ссылку

Данный инструмент позволит автоматизировать администрирование сервера:
мониторинг и удаление старых очередей, связей и обменов и кол-во одновременных коннекций.

далее кр описание…
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры4K
Комментарии 0

PHP-AMQP версия 2

Разработка веб-сайтов
В статье Новые идеи по АПИ RabbitMQ AMQP для PHP был опубликован набросок по PHP-AMQP API

В продолжении ранее опубликованных идей представляю их реализацию, которая более ООПешнее первой версии.
Читать дальше →
Всего голосов 8: ↑5 и ↓3 +2
Просмотры8.8K
Комментарии 6

PHP-AMQP Что нового у Друзей?

Разработка веб-сайтов
При построении социальной сети по типу шардинга встает проблема обмена данными между шардами. Традиционная репликация в данном случае не подходит по разным причинам. Тема шардинга — это отельная большая тема и не является предметом данной статьи.
В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).
Читать дальше →
Всего голосов 29: ↑22 и ↓7 +15
Просмотры6.4K
Комментарии 62

AMQP — отладка приложений

Чулан
Рзработка сложных систем обмена сообщениями по протоколу AMQP приходится не только отлаживать код, но и разбираться в структуре и роутинге сообщений.
Иногда трудно понять причину того или иного зависания или отсутствия сообщения. Однако, разработчиками RabbitMQ включен в составе пакета rabbitmq-java-client есть класс Tracer,
который позволяет в консольном режиме просматривать информацию об обмене.

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры2.2K
Комментарии 4

Двунаправленный асинхронный обмен данными в веб-приложениях

Разработка веб-сайтов
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →
Всего голосов 68: ↑64 и ↓4 +60
Просмотры19K
Комментарии 52

Lib amqpcpp wrapper for librabbitmq

Разработка веб-сайтов
За последние полтора года активно набирает популярность Сервер очередей RabbitMQ, который работает по протоколу AMQP. Про данный протокол уже было достаточно статей на Хабре. В инструментарии есть библиотека librabbitmq

На основе этой библиотеке выложил в Google Code проект С++ библиотеки amqpcpp, которая является упрощенным интерфейсом к librabbitmq. Документации нет, примеров использования в дистрибутиве только три. Под кастом краткое изложение АПИ и примеры ее использования. Использование стало проще.
Читать дальше →
Всего голосов 13: ↑9 и ↓4 +5
Просмотры1.7K
Комментарии 2

Библиотека amqpcpp. Часть 2 — Очереди

Разработка веб-сайтов
В статье «Lib amqpcpp wrapper for librabbitmq» был обзор публикации сообщений по протоколу AMQP. Данная статья является ее продолжением, в которой ниже описывается как использовать Очереди.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры2.1K
Комментарии 2

AMQP-REST

Разработка веб-сайтов
про AMQP говорили много. Очередная разработка, ориентированная на AJAX.
Возможности:
  • читать из очереди одно сообщение
  • читать из очереди все сообщения
  • узнать длинну очереди
  • публиковать сообщение в обмен

Данные возвращаются в JSON.
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Просмотры5.2K
Комментарии 26

Моделируем полёт PHP на крыльях Erlang

PHPErlang/OTP
В данной статье изложены размышления и фантазии на тему «как можно было бы скрестить Erlang и PHP, чтобы случилось вселенское счастье», а не описание готовой технологии или продукта. Впрочем, мы намерены это реализовать, скорее всего, в форме open-source проекта, если, конечно, уважаемая хабра-аудитория не отговорит :) Собственно, одна из главных задач этой статьи — понять, насколько идея интересна и потенциально полезна широкому PHP-сообществу. Кстати, некоторые из проблем, обсуждаемых в статье, справедливы и для других популярных скриптовых языков (тут я подразумеваю Ruby и Python), так что предлагаемое решение, возможно, будет актуально и для них.
Интересно, нафига козе баян?
Всего голосов 95: ↑86 и ↓9 +77
Просмотры8.4K
Комментарии 166

Open Source-расширения для yii от команд 2ГИС

Блог компании 2ГИС
В прошлый раз мы рассказали о слоистой архитектуре во фреймворке yii, а сейчас хотим поделиться кодом.

В своей работе мы активно используем open source-решения и поэтому решили поделиться собственными разработками, которые могут быть полезны сообществу. Сегодня это расширения для, наверное, лучшего в мире PHP-фреймворка yii:
  • DGSphinxSearch
  • AMQP(RabbitMQ)
  • MQLogRouter
  • DGPinbaLogRoute
  • DGApiClient
Рассмотрим эти расширения по порядку.

Читать дальше →
Всего голосов 85: ↑80 и ↓5 +75
Просмотры18.6K
Комментарии 9

RabbitMQ tutorial 1 — Hello World

Разработка веб-сайтовPython
Из песочницы
Tutorial


RabbitMQ позволяет взаимодействовать различным программам при помощи протокола AMQP. RabbitMQ является отличным решением для построения SOA (сервис-ориентированной архитектуры) и распределением отложенных ресурсоемких задач.

Под катом перевод первого из шести уроков официального сайта. Примеры на python, но его знание вовсе не обязательно. Аналогичные примеру программы можно воспроизвести практически на любом популярном ЯП. [так выглядят комментарии переводчика, т.е. меня]
Читать дальше →
Всего голосов 57: ↑51 и ↓6 +45
Просмотры410.3K
Комментарии 58

RabbitMQ tutorial 2 — Очередь задач

Разработка веб-сайтовPython
Перевод
Tutorial


В продолжение первого урока по изучению азов RabbitMQ публикую перевод второго урока с официального сайта. Все примеры, как и ранее, на python, но по-прежнему их можно реализовать на большинстве популярных ЯП.
Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Просмотры181K
Комментарии 15
1