Архитектура
SEDA
План
• Что такое SEDA?
• Примеры использования
• Из чего строится SEDA?
Stage Event Driven Architecture
SEDA – архитектура для построения систем
массового обслуживания.
Название “SEDA” впервые п...
SEDA, терминилогия
Ступень (stage) – процедура обрабатывающая
событие.
Событие (event) – собщение, которым
обмениваются ст...
SEDA, схема обработки


Запрос                           Результат




               SEDA-транзакция
SEDA, “типовые” ступени
   Процессор    Роутер   Сплиттер   Агрегатор

                     …          …

       !




80%...
SEDA, достоинства
• Фунциональная часть
• Нефунциональная часть
• Распределённая обработка
SEDA, нефункциональная
• Независаимый тюнинг ступеней и очередей
  – пулы потоков, размер очередей, приоритеты
• Пакетная ...
SEDA транзакции
                Txn     Txn     Txn




 Atomicity Consistency Isolation Durability
“Eventual atomicity” –...
SEDA, распределённая обработка
Вертикаль – распределение ступеней по разным
серверам.
Горизонталь – распределение нагрузки...
ПРИМЕРЫ
 •Обработка транзакций (биллинг)
 •Управление контентом (web)
Биллинг, cписание средств
              Выбоpка                       Коммит
                  Рестарт, оптимисти
        ...
Биллинг, списание средств
• Распределиние нагрузки по кластеру
• Параллельное выполнение операций в
  рамках одной транзац...
Web, каталог продуктов
Web, каталог продуктов
•   Распределение нагрузки по кластеру
•   Ограничение CPU на фоновые задачи
•   Пакетное выполнени...
ИЗ ЧЕГО СТРОИТСЯ SEDA?
Технологии
• Emule ESB              • jeanslee.org
• Apache Camel           • JCyclone
• Erlang/OTP             • BPEL

  ...
SEDA своими руками
• Очереди событий
  – распределение
    нагрузки, надёжность, транзакционность, …
• Хранилище состояния...
Data Grid как основа SEDA
Data Grid:
–   Управление кластером
–   Совместный доступ к данным
–   Удалённые вызовы
–   Отка...
Спасибо

                              Алексей Рагозин
       Руководитель направления Oracle Coherence
GridDynamics – Sca...
Upcoming SlideShare
Loading in...5
×

Alexey Ragozin Ritconf Seda Ru

1,557

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
1,557
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×