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.

Alexey Ragozin Ritconf Seda Ru

1,761 views

Published on

  • Be the first to comment

  • Be the first to like this

Alexey Ragozin Ritconf Seda Ru

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

×