Сведения о присутствии, обмен мгновенными сообщениями и контакты
RabbitMQ - обмен сообщениями, который просто работает
-
Upload
ruslan-safin -
Category
Technology
-
view
278 -
download
1
description
Transcript of RabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто
работаетРуслан Сафин
ByndyuSofttwitter.com/razonrus
5-я конференция .NET разработчиков
21 октября 2012
www.dotnetconf.ru
2RabbitMQ , РусланСафин
Цели
• Познакомить с RabbitMQ
• Поделиться историями из жизни
3RabbitMQ , РусланСафин
Проблема
4RabbitMQ , РусланСафин
Проблема в коммуникации
5RabbitMQ , РусланСафин
Сервис 1 Сервис 2
. . .
Сервис N
Коммуникация – вариант 1
6RabbitMQ , РусланСафин
Ожидание
• Распределенная прозрачная архитектура
• Масштабируемость
• Отказоустойчивость
7RabbitMQ , РусланСафин
Реальность
8RabbitMQ , РусланСафин
9RabbitMQ , РусланСафин
Сервис 1 Сервис 2
. . .
Сервис N
Коммуникация – вариант 2
10RabbitMQ , РусланСафин
Общая шина – и есть среда для коммуникации.
11RabbitMQ , РусланСафин
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
12RabbitMQ , РусланСафин
Демо
Лучше один раз увидеть код, чем сто раз прочесть MSDN
13RabbitMQ , РусланСафин
Еще примеры
• Отправка сообщения сразу нескольким подписчикам за раз
• Выборочное получение сообщений
• Выборочное получение сообщений на основе маски
• RPC (удаленный вызов процедуры)
14RabbitMQ , РусланСафин
Как мы это применяли
15RabbitMQ , РусланСафин
Сервис 1 Сервис 2
. . .
Сервис N
Сложившаяся ситуация
16RabbitMQ , РусланСафин
Сервис 2
Сервис N
1. Разгрузить БД
Сервис 1
Планировщик Репозиторий
17RabbitMQ , РусланСафин
2. Оптимизировать конвейер
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Сервис Z
18RabbitMQ , РусланСафин
Результат
19RabbitMQ , РусланСафин
20RabbitMQ , РусланСафин
Результат
• Прозрачный, легко диагностируемый конвейер
• Скорость
• Масштабируемость
• Бонусы
21RabbitMQ , РусланСафин
Бонус 1: инициирование задач
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Сервис ZВеб клиент
22RabbitMQ , РусланСафин
Бонус 2: приоритеты задач
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Сервис Z
23RabbitMQ , РусланСафин
Проблемы решения
• Возможность появления дублей в очередях
• Загруженность приоритетных очередей
24RabbitMQ , РусланСафин
Check list
• Общая шина
• RabbitMQ
• Примеры построения архитектуры
25RabbitMQ , РусланСафин
Спасибо за внимание
Руслан Сафин
ByndyuSoft
twitter.com/razonrus