Upload
alexander-byndyu
View
3.476
Download
1
Embed Size (px)
DESCRIPTION
По материалам конференции .NET разработчиков - www.dotnetconf.ru http://www.dotnetconf.ru/Materialy/RabbitMQ
Citation preview
RabbitMQ - обмен сообщениями,
5-я конференция .NET разработчиков21 октября 2012www.dotnetconf.ru
RabbitMQ - обмен сообщениями, который просто работает
Руслан СафинByndyuSoft
twitter.com/razonrus
Цели
• Познакомить с RabbitMQ• Поделиться историями из жизни
2RabbitMQ , РусланСафин
Проблема
3RabbitMQ , РусланСафин
Проблема
Проблема в коммуникации
4RabbitMQ , РусланСафин
Сервис 1 Сервис 2
. . .Сервис N
Коммуникация – вариант 1
5RabbitMQ , РусланСафин
Ожидание
• Распределенная прозрачная архитектура• Масштабируемость• Отказоустойчивость
6RabbitMQ , РусланСафин
Реальность
7RabbitMQ , РусланСафин
8RabbitMQ , РусланСафин
Сервис 1 Сервис 2
. . .Сервис N
Коммуникация – вариант 2
9RabbitMQ , РусланСафин
Общая шина – и есть среда для коммуникации.
10RabbitMQ , РусланСафин
RabbitMQ
• Robust messaging for applications• Easy to use• Runs on all major operating systems• Supports a huge number of developer
11RabbitMQ , РусланСафин
• Supports a huge number of developer platforms
• Open source and commercially supported
Демо
Лучше один раз увидеть код, чем сто раз прочесть MSDN
12RabbitMQ , РусланСафин
прочесть MSDN
Еще примеры
• Отправка сообщения сразу нескольким подписчикам за раз
• Выборочное получение сообщений• Выборочное получение сообщений на
13RabbitMQ , РусланСафин
• Выборочное получение сообщений на основе маски
• RPC (удаленный вызов процедуры)
Как мы это применяли
14RabbitMQ , РусланСафин
Как мы это применяли
Сервис 1 Сервис 2
. . .Сервис N
На чем мы остановились
15RabbitMQ , РусланСафин
Сервис 2
1. Разгрузить БД
Сервис 1
Планировщик Репозиторий
16RabbitMQ , РусланСафин
Сервис N
2. Оптимизировать конвейер
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Сервис X
17RabbitMQ , РусланСафин
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Результат
18RabbitMQ , РусланСафин
19RabbitMQ , РусланСафин
Результат• Прозрачный, легко диагностируемый
конвейер• Скорость• Масштабируемость
20RabbitMQ , РусланСафин
• Масштабируемость• Бонусы
Бонус 1: инициирование задач
Сервис XВеб клиент
21RabbitMQ , РусланСафин
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Бонус 2: приоритеты задач
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Сервис Z
22RabbitMQ , РусланСафин
Планировщик РепозиторийСервис 1 Сервис 2 Сервис N
Проблемы решения• Возможность появления дублей в очередях• Загруженность приоритетных очередей
23RabbitMQ , РусланСафин
Check list• Общая шина• RabbitMQ• Примеры построения архитектуры
24RabbitMQ , РусланСафин
Спасибо за вниманиеСпасибо за вниманиеСпасибо за вниманиеСпасибо за внимание
Руслан СафинByndyuSoft
25RabbitMQ , РусланСафин
twitter.com/razonrus