Архитектура  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

775 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
775
On SlideShare
0
From Embeds
0
Number of Embeds
187
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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>

×