20
Архитектура SEDA

Alexey Ragozin Ritconf Seda Ru

  • Upload
    rit2010

  • View
    501

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Alexey Ragozin Ritconf Seda Ru

Архитектура SEDA

Page 2: Alexey Ragozin Ritconf Seda Ru

План• Что такое SEDA?• Примеры использования• Из чего строится SEDA?

Page 3: Alexey Ragozin Ritconf Seda Ru

Stage Event Driven ArchitectureSEDA – архитектура для построения систем

массового обслуживания.Название “SEDA” впервые прозвучало в 2000,

но сами идеи имеют более глубокие корни.

Page 4: Alexey Ragozin Ritconf Seda Ru

SEDA, терминилогияСтупень (stage) – процедура обрабатывающая

событие. Событие (event) – собщение, которым

обмениваются ступени.Очередь (queue) – буфер входных событий для

ступени.

Page 5: Alexey Ragozin Ritconf Seda Ru

SEDA, схема обработки

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

SEDA-транзакция

Page 6: Alexey Ragozin Ritconf Seda Ru

SEDA, “типовые” ступениПроцессор

!

80% функционала – комбинация “типовых” ступеней

Роутер Сплиттер Агрегатор

Page 7: Alexey Ragozin Ritconf Seda Ru

SEDA, достоинства• Фунциональная часть• Нефунциональная часть• Распределённая обработка

Page 8: Alexey Ragozin Ritconf Seda Ru

SEDA, нефункциональная• Независаимый тюнинг ступеней и очередей

– пулы потоков, размер очередей, приоритеты

• Пакетная обработка запросов• Отказоустойчивость• Мониторинг

Page 9: Alexey Ragozin Ritconf Seda Ru

SEDA транзакцииTxn Txn Txn

Atomicity Consistency Isolation Durability

“Eventual atomicity” – если тразакция стартовала, то все её шаги неминуемо будут выполнены.

Page 10: Alexey Ragozin Ritconf Seda Ru

SEDA, распределённая обработкаВертикаль – распределение ступеней по разным

серверам.Горизонталь – распределение нагрузки на ступень,

по кластеру.

Комбинирование вертикального и горизонтального подхода.Перемещение вычислений к данным.

Page 11: Alexey Ragozin Ritconf Seda Ru

ПРИМЕРЫ•Обработка транзакций (биллинг)•Управление контентом (web)

Page 12: Alexey Ragozin Ritconf Seda Ru

Биллинг, cписание средств

Декодирование события

Выбоpка текущего баланса

Выборка правил

тарификации

Расчёт списания

Коммит транзакции “в памяти”

Рестарт, оптимистической

блокировкиОтправка

подтверждениями

Асинхронная запись в БД

Page 13: Alexey Ragozin Ritconf Seda Ru

Биллинг, списание средств• Распределиние нагрузки по кластеру• Параллельное выполнение операций в

рамках одной транзации• Гарантированную асинхронную запись в БД• Объединение транзакций в БД

Page 14: Alexey Ragozin Ritconf Seda Ru

Web, каталог продуктов

Page 15: Alexey Ragozin Ritconf Seda Ru

Web, каталог продуктов• Распределение нагрузки по кластеру• Ограничение CPU на фоновые задачи• Пакетное выполнение “тяжёлых” операций• Версионность + “eventual atomicity” ->

консистентность изменений

Page 16: Alexey Ragozin Ritconf Seda Ru

ИЗ ЧЕГО СТРОИТСЯ SEDA?

Page 17: Alexey Ragozin Ritconf Seda Ru

Технологии• Emule ESB• Apache Camel• Erlang/OTP

• jeanslee.org• JCyclone• BPEL

… and counting

Page 18: Alexey Ragozin Ritconf Seda Ru

SEDA своими руками• Очереди событий

– распределение нагрузки, надёжность, транзакционность, …

• Хранилище состояния для ступеней– лишь малое количество ступеней имеют состояние

Page 19: Alexey Ragozin Ritconf Seda Ru

Data Grid как основа SEDAData Grid:– Управление кластером– Совместный доступ к данным– Удалённые вызовы– Отказоустойчивость

Page 20: Alexey Ragozin Ritconf Seda Ru

Спасибо

Алексей Рагозин Руководитель направления Oracle Coherence

GridDynamics – Scaling mission-critical systems