ݺߣ

ݺߣShare a Scribd company logo
5-я конференция .NET разработчиков
21 октября 2012
www.dotnetconf.ru



           RabbitMQ - обмен
      сообщениями, который просто
               работает
                             Руслан Сафин
                               ByndyuSoft
                          twitter.com/razonrus
Цели
• Познакомить с RabbitMQ
• Поделиться историями из жизни




                  RabbitMQ , РусланСафин   2
Проблема




   RabbitMQ , РусланСафин   3
Проблема в коммуникации




           RabbitMQ , РусланСафин   4
Коммуникация – вариант 1

                            . . .
Сервис 1   Сервис 2                        Сервис N




                      RabbitMQ , РусланСафин          5
Ожидание
• Распределенная прозрачная архитектура
• Масштабируемость
• Отказоустойчивость




                    RabbitMQ , РусланСафин   6
Реальность




    RabbitMQ , РусланСафин   7
RabbitMQ , РусланСафин   8
Коммуникация – вариант 2

                            . . .
Сервис 1   Сервис 2                            Сервис N




                      RabbitMQ , РусланСафин         9
Общая шина – и есть среда для
      коммуникации.




             RabbitMQ , РусланСафин   10
RabbitMQ
• Robust messaging for applications
• Easy to use
• Runs on all major operating systems
• Supports a huge number of developer
  platforms
• Open source and commercially supported


                   RabbitMQ , РусланСафин   11
Демо


Лучше один раз увидеть код, чем сто раз
            прочесть MSDN




                  RabbitMQ , РусланСафин   12
Еще примеры
• Отправка сообщения сразу нескольким
  подписчикам за раз
• Выборочное получение сообщений
• Выборочное получение сообщений на
  основе маски
• RPC (удаленный вызов процедуры)



                   RabbitMQ , РусланСафин   13
Как мы это применяли




         RabbitMQ , РусланСафин   14
Сложившаяся ситуация

                            . . .
Сервис 1   Сервис 2                        Сервис N




                      RabbitMQ , РусланСафин          15
1. Разгрузить БД

                   Сервис 1




Планировщик                                     Репозиторий
                   Сервис 2




                   Сервис N




                       RabbitMQ , РусланСафин           16
2. Оптимизировать конвейер

                         Сервис Z




Планировщик   Сервис 1   Сервис 2       Сервис N       Репозиторий




                              RabbitMQ , РусланСафин           17
Результат




    RabbitMQ , РусланСафин   18
RabbitMQ , РусланСафин   19
Результат
• Прозрачный, легко диагностируемый
  конвейер
• Скорость
• Масштабируемость
• Бонусы




                   RabbitMQ , РусланСафин   20
Бонус 1: инициирование задач

Веб клиент
                               Сервис Z




      Планировщик   Сервис 1    Сервис 2      Сервис N   Репозиторий




                               RabbitMQ , РусланСафин        21
Бонус 2: приоритеты задач

                         Сервис Z




Планировщик   Сервис 1   Сервис 2       Сервис N     Репозиторий




                            RabbitMQ , РусланСафин         22
Проблемы решения
• Возможность появления дублей в очередях
• Загруженность приоритетных очередей




                    RabbitMQ , РусланСафин   23
Check list
• Общая шина
• RabbitMQ
• Примеры построения архитектуры




                   RabbitMQ , РусланСафин   24
Спасибо за внимание

       Руслан Сафин
          ByndyuSoft
  iruslansafin@gmail.com
     twitter.com/razonrus



            RabbitMQ , РусланСафин   25
Ad

Recommended

RabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто работает
Alexander Byndyu
Золото Дракона
Золото Дракона
Светлана Разоренова
Blockchain introduction
Blockchain introduction
Dmitry Meshkov
MikroTik MUM Russia 2015
MikroTik MUM Russia 2015
MikroTikSPW
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
AvitoTech
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Ontico
What RabbitMQ Can Do For You (Nomad PHP May 2014)
What RabbitMQ Can Do For You (Nomad PHP May 2014)
James Titcumb
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
Ontico
Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Ontico
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Dev_Party
Первые шаги с RabbitMQ
Первые шаги с RabbitMQ
Alexander Svetkin
Технологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложений
Olga Lavrentieva
Как разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластера
Eugene Kirpichov
Rabbit mq
Rabbit mq
Alexandr Fedorov
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Ontico
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
Андрей Федоровский
Выбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 году
Voximplant
В поисках эффективного middleware
В поисках эффективного middleware
Alexander Gerasiov
Об очередях (AMQP)
Об очередях (AMQP)
Ilya Chesnokov
Windows Azure Service Bus
Windows Azure Service Bus
Pavel Revenkov
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Nick Turunov
Отказоустойчивость и производительность
Отказоустойчивость и производительность
OpenStackRU
Kubasov 1 7_deploy
Kubasov 1 7_deploy
kuchinskaya
Варианты развертывания проектов на M3
Варианты развертывания проектов на M3
Bars Group
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Ирония безопасности
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Pavel Treshnikov
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Ontico
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Ontico

More Related Content

Similar to RabbitMQ - обмен сообщениями, который просто работает (20)

Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Ontico
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Dev_Party
Первые шаги с RabbitMQ
Первые шаги с RabbitMQ
Alexander Svetkin
Технологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложений
Olga Lavrentieva
Как разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластера
Eugene Kirpichov
Rabbit mq
Rabbit mq
Alexandr Fedorov
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Ontico
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
Андрей Федоровский
Выбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 году
Voximplant
В поисках эффективного middleware
В поисках эффективного middleware
Alexander Gerasiov
Об очередях (AMQP)
Об очередях (AMQP)
Ilya Chesnokov
Windows Azure Service Bus
Windows Azure Service Bus
Pavel Revenkov
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Nick Turunov
Отказоустойчивость и производительность
Отказоустойчивость и производительность
OpenStackRU
Kubasov 1 7_deploy
Kubasov 1 7_deploy
kuchinskaya
Варианты развертывания проектов на M3
Варианты развертывания проектов на M3
Bars Group
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Ирония безопасности
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Pavel Treshnikov
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Ontico
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Ontico
Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Как разработать вычислительную инфраструктуру для большого кластера (Евгений ...
Ontico
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Dev_Party
Технологии и подходы в разработке высоконагруженных приложений
Технологии и подходы в разработке высоконагруженных приложений
Olga Lavrentieva
Как разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластера
Eugene Kirpichov
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Ontico
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
Андрей Федоровский
Выбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 году
Voximplant
В поисках эффективного middleware
В поисках эффективного middleware
Alexander Gerasiov
Об очередях (AMQP)
Об очередях (AMQP)
Ilya Chesnokov
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Модернизация телекоммуникационной и сетевой инфраструктуры Национального бан...
Nick Turunov
Отказоустойчивость и производительность
Отказоустойчивость и производительность
OpenStackRU
Варианты развертывания проектов на M3
Варианты развертывания проектов на M3
Bars Group
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Анализ рынка MQ: когда простые решения слишком дешёвые, ведь тратить больше -...
Ирония безопасности
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Pavel Treshnikov
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Ontico
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Ontico

RabbitMQ - обмен сообщениями, который просто работает