2013-04-06 02 Евгений Тюменцев. message-oriented middlware

26
01 TIKTOKCOACH.COM Message-Oriented Middleware HWdTech.DS

Upload: -

Post on 22-Jun-2015

428 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

01 TIKTOKCOACH.COM

Message-Oriented Middleware

HWdTech.DS

Page 2: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

02 TIKTOKCOACH.COM

Докладчик

Тюменцев Евгений

13 лет преподаю – кафедра МЛЛП ИМИТ

Управляющий партнер компании “Тик-Так Коуч”

Page 3: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

03 TIKTOKCOACH.COM

Многопоточность?Это Вам не это!

Проблема

Page 4: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

04 TIKTOKCOACH.COM

Нужны спецы

Page 5: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

05 TIKTOKCOACH.COM

Скучно и нудно

Page 6: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

06 TIKTOKCOACH.COM

Есть идея

Page 7: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

07 TIKTOKCOACH.COM

Вдохновители

Page 8: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

08 TIKTOKCOACH.COM

Благодарности

Page 9: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

09 TIKTOKCOACH.COM

Цель

Как есть

Архитектура

Взаимодействие

Измеримость

Оптимизация

Page 10: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

10 TIKTOKCOACH.COM

Архитектура

Page 11: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

11 TIKTOKCOACH.COM

Общая схема

Page 12: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

12 TIKTOKCOACH.COM

Message Bus

• MessageBus.Send(message);

• MessageBus.Join(job);

Page 13: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

13 TIKTOKCOACH.COM

Jobpublic class EchoJob : IJob{ [ChannelEndpointHandler("Echo")] public void Handle(IMessage message) { MessageBus.TrySendSuccessResponse(message); }}

Page 14: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

14 TIKTOKCOACH.COM

Синхронная обработка

Внутренний запрос

Формирование ответа

Page 15: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

15 TIKTOKCOACH.COM

Асинхронная обработка[ChannelEndpointHanlder(ChannelsLoaderLocal,

MessageType="Messages.Loader.Load")]public void LoadMessageHandler(IMessage message){ // … MessageBus.Send( MessagesFactory.Instance.CreateMessage(“Messages.Config.Get”,ChannelsLoaderLocal) );}[ChannelEndpointHanlder(ChannelsLoaderLocal,

MessageType = "Messages.Config.GetResponse")]public void ConfigGetResponseHandler(IMessage response){ // …}

Page 16: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

16 TIKTOKCOACH.COM

Взаимодействие

Page 17: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

17 TIKTOKCOACH.COM

ЖЦ данных

Ввод Предварительная обработка

Подготовка к выдаче Показ результатов

Запрос на внесение данных

Запрос на выдачуданных

Ответ на запрос о внесении данных

Ответ на запрос о выдаче данных

Благоприятный момент времени

Page 18: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

18 TIKTOKCOACH.COM

Борьба за надежность

Если Ваша системаработает только в 1%случаев, то как еепревратить в системусо степенью надежности 99%?

Page 19: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

19 TIKTOKCOACH.COM

Все просто

P(успеха) = 0.01, => P(1 неудачи) = 0.99

P(n неудач) = P(1 неудачи)^n

459 попыток

Page 20: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

20 TIKTOKCOACH.COM

Message Map

Job1 Job2 … JobN

Page 21: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

21 TIKTOKCOACH.COM

Check Point

CP1 Job … CPN

Ответ на входящий

запрос

Page 22: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

22 TIKTOKCOACH.COM

Document StorageДокумент в виде JSONFull Text SearchFiltersRangesTagsOrders

Page 23: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

23 TIKTOKCOACH.COM

Scheduler

Последовательности Стратегии обработки ошибок

Page 24: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

24 TIKTOKCOACH.COM

Что еще?• Визуальный интерфейс– Информация о сервере– Маршрутизация между серверами

• Библиотека Job’ов• Конфигурирование• Миграция Job’ов• Распределенное тестирование

Page 25: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

25 TIKTOKCOACH.COM

Задачи

• Workfow• Зависимости между Job’ами• Упростить написание тестов

Page 26: 2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

26 TIKTOKCOACH.COM

Спасибо

Тюменцев Евгений

Звоните: +7 913 150 22 04Пишите: [email protected]Читайте: @tiktokcoach