25
RabbitMQ - обмен сообщениями, 5-я конференция .NET разработчиков 21 октября 2012 www.dotnetconf.ru RabbitMQ - обмен сообщениями, который просто работает Руслан Сафин ByndyuSoft twitter.com/razonrus

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

Embed Size (px)

DESCRIPTION

По материалам конференции .NET разработчиков - www.dotnetconf.ru http://www.dotnetconf.ru/Materialy/RabbitMQ

Citation preview

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

RabbitMQ - обмен сообщениями,

5-я конференция .NET разработчиков21 октября 2012www.dotnetconf.ru

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

Руслан СафинByndyuSoft

twitter.com/razonrus

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

Цели

• Познакомить с RabbitMQ• Поделиться историями из жизни

2RabbitMQ , РусланСафин

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

Проблема

3RabbitMQ , РусланСафин

Проблема

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

Проблема в коммуникации

4RabbitMQ , РусланСафин

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

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

. . .Сервис N

Коммуникация – вариант 1

5RabbitMQ , РусланСафин

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

Ожидание

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

6RabbitMQ , РусланСафин

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

Реальность

7RabbitMQ , РусланСафин

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

8RabbitMQ , РусланСафин

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

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

. . .Сервис N

Коммуникация – вариант 2

9RabbitMQ , РусланСафин

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

Общая шина – и есть среда для коммуникации.

10RabbitMQ , РусланСафин

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

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

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

Демо

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

12RabbitMQ , РусланСафин

прочесть MSDN

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

Еще примеры

• Отправка сообщения сразу нескольким подписчикам за раз

• Выборочное получение сообщений• Выборочное получение сообщений на

13RabbitMQ , РусланСафин

• Выборочное получение сообщений на основе маски

• RPC (удаленный вызов процедуры)

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

Как мы это применяли

14RabbitMQ , РусланСафин

Как мы это применяли

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

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

. . .Сервис N

На чем мы остановились

15RabbitMQ , РусланСафин

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

Сервис 2

1. Разгрузить БД

Сервис 1

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

16RabbitMQ , РусланСафин

Сервис N

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

2. Оптимизировать конвейер

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

Сервис X

17RabbitMQ , РусланСафин

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

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

Результат

18RabbitMQ , РусланСафин

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

19RabbitMQ , РусланСафин

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

Результат• Прозрачный, легко диагностируемый

конвейер• Скорость• Масштабируемость

20RabbitMQ , РусланСафин

• Масштабируемость• Бонусы

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

Бонус 1: инициирование задач

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

21RabbitMQ , РусланСафин

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

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

Бонус 2: приоритеты задач

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

Сервис Z

22RabbitMQ , РусланСафин

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

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

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

23RabbitMQ , РусланСафин

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

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

24RabbitMQ , РусланСафин

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

Спасибо за вниманиеСпасибо за вниманиеСпасибо за вниманиеСпасибо за внимание

Руслан СафинByndyuSoft

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

[email protected]

twitter.com/razonrus