Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Архитектура  SEDA
План <ul><li>Что такое  SEDA? </li></ul><ul><li>Примеры использования </li></ul><ul><li>Из чего строится  SEDA? </li></ul>
Stage Event Driven Architecture <ul><li>SEDA  – архитектура для построения систем массового обслуживания. </li></ul><ul><l...
SEDA,  терминилогия <ul><li>Ступень  ( stage) –  процедура обрабатывающая событие.  </li></ul><ul><li>Событие   (event) – ...
SEDA,  схема обработки Запрос Результат SEDA- транзакция
SEDA, “ типовые ”  ступени Процессор 80% функционала – комбинация  “ типовых ”  ступеней Роутер Сплиттер Агрегатор
SEDA,  достоинства <ul><li>Фунциональная часть </li></ul><ul><li>Нефунциональная часть </li></ul><ul><li>Распределённая об...
SEDA,  нефункциональная <ul><li>Независаимый тюнинг ступеней и очередей </li></ul><ul><ul><li>пулы потоков,  размер очеред...
SEDA  транзакции Txn Txn Txn A tomicity  C onsistency  I solation   D urability “ Eventual atomicity” –  если тразакция ст...
SEDA,  распределённая обработка <ul><li>Вертикаль  – распределение ступеней по разным серверам. </li></ul><ul><li>Горизонт...
ПРИМЕРЫ <ul><li>Обработка транзакций (биллинг) </li></ul><ul><li>Управление контентом ( web) </li></ul>
Биллинг , c писание средств Декодирование события Выбо p ка текущего баланса Выборка правил тарификации Расчёт списания Ко...
Биллинг ,  списание средств <ul><li>Распределиние нагрузки по кластеру </li></ul><ul><li>Параллельное выполнение операций ...
Web , каталог продуктов
Web,  каталог продуктов <ul><li>Распределение нагрузки по кластеру </li></ul><ul><li>Ограничение  CPU  на фоновые задачи <...
ИЗ ЧЕГО СТРОИТСЯ  SEDA?
Технологии <ul><li>Emule ESB </li></ul><ul><li>Apache Camel </li></ul><ul><li>Erlang/OTP </li></ul><ul><li>jeanslee.org </...
SEDA  своими руками <ul><li>Очереди событий </li></ul><ul><ul><li>распределение нагрузки ,  надёжность ,  транзакционность...
Data Grid  как основа  SEDA <ul><li>Data Grid: </li></ul><ul><li>Управление кластером </li></ul><ul><li>Совместный доступ ...
Спасибо <ul><li>Алексей Рагозин   </li></ul><ul><li>Руководитель направления  Oracle Coherence </li></ul><ul><li>GridDynam...
Upcoming SlideShare
Loading in …5
×

Alexey Ragozin Ritconf Seda Ru

845 views

Published on

  • Be the first to comment

  • Be the first to like this

Alexey Ragozin Ritconf Seda Ru

  1. 1. Архитектура SEDA
  2. 2. План <ul><li>Что такое SEDA? </li></ul><ul><li>Примеры использования </li></ul><ul><li>Из чего строится SEDA? </li></ul>
  3. 3. Stage Event Driven Architecture <ul><li>SEDA – архитектура для построения систем массового обслуживания. </li></ul><ul><li>Название “SEDA” впервые прозвучало в 2000, но сами идеи имеют более глубокие корни. </li></ul>
  4. 4. SEDA, терминилогия <ul><li>Ступень ( stage) – процедура обрабатывающая событие. </li></ul><ul><li>Событие (event) – собщение, которым обмениваются ступени. </li></ul><ul><li>Очередь ( queue) – буфер входных событий для ступени. </li></ul>
  5. 5. SEDA, схема обработки Запрос Результат SEDA- транзакция
  6. 6. SEDA, “ типовые ” ступени Процессор 80% функционала – комбинация “ типовых ” ступеней Роутер Сплиттер Агрегатор
  7. 7. SEDA, достоинства <ul><li>Фунциональная часть </li></ul><ul><li>Нефунциональная часть </li></ul><ul><li>Распределённая обработка </li></ul>
  8. 8. SEDA, нефункциональная <ul><li>Независаимый тюнинг ступеней и очередей </li></ul><ul><ul><li>пулы потоков, размер очередей , приоритеты </li></ul></ul><ul><li>Пакетная обработка запросов </li></ul><ul><li>Отказоустойчивость </li></ul><ul><li>Мониторинг </li></ul>
  9. 9. SEDA транзакции Txn Txn Txn A tomicity C onsistency I solation D urability “ Eventual atomicity” – если тразакция стартовала, то все её шаги неминуемо будут выполнены.
  10. 10. SEDA, распределённая обработка <ul><li>Вертикаль – распределение ступеней по разным серверам. </li></ul><ul><li>Горизонталь – распределение нагрузки на ступень, по кластеру. </li></ul>Комбинирование вертикального и горизонтального подхода. Перемещение вычислений к данным.
  11. 11. ПРИМЕРЫ <ul><li>Обработка транзакций (биллинг) </li></ul><ul><li>Управление контентом ( web) </li></ul>
  12. 12. Биллинг , c писание средств Декодирование события Выбо p ка текущего баланса Выборка правил тарификации Расчёт списания Коммит транзакции “ в памяти ” Рестарт, оптимистической блокировки Отправка подтверждениями Асинхронная запись в БД
  13. 13. Биллинг , списание средств <ul><li>Распределиние нагрузки по кластеру </li></ul><ul><li>Параллельное выполнение операций в рамках одной транзации </li></ul><ul><li>Гарантированную асинхронную запись в БД </li></ul><ul><li>Объединение транзакций в БД </li></ul>
  14. 14. Web , каталог продуктов
  15. 15. Web, каталог продуктов <ul><li>Распределение нагрузки по кластеру </li></ul><ul><li>Ограничение CPU на фоновые задачи </li></ul><ul><li>Пакетное выполнение “ тяжёлых ” операций </li></ul><ul><li>Версионность + “ eventual atomicity” -> консистентность изменений </li></ul>
  16. 16. ИЗ ЧЕГО СТРОИТСЯ SEDA?
  17. 17. Технологии <ul><li>Emule ESB </li></ul><ul><li>Apache Camel </li></ul><ul><li>Erlang/OTP </li></ul><ul><li>jeanslee.org </li></ul><ul><li>JCyclone </li></ul><ul><li>BPEL </li></ul>… and counting
  18. 18. SEDA своими руками <ul><li>Очереди событий </li></ul><ul><ul><li>распределение нагрузки , надёжность , транзакционность , … </li></ul></ul><ul><li>Хранилище состояния для ступеней </li></ul><ul><ul><li>лишь малое количество ступеней имеют состояние </li></ul></ul>
  19. 19. Data Grid как основа SEDA <ul><li>Data Grid: </li></ul><ul><li>Управление кластером </li></ul><ul><li>Совместный доступ к данным </li></ul><ul><li>Удалённые вызовы </li></ul><ul><li>Отказоустойчивость </li></ul>
  20. 20. Спасибо <ul><li>Алексей Рагозин </li></ul><ul><li>Руководитель направления Oracle Coherence </li></ul><ul><li>GridDynamics – Scaling mission-critical systems </li></ul>

×