Alexey Ragozin Ritconf Seda Ru

Preview:

DESCRIPTION

 

Citation preview

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

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

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

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

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

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

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

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

ступени.

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

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

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

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

!

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

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

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

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

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

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

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

Atomicity Consistency Isolation Durability

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

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

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

по кластеру.

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

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

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

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

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

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

тарификации

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

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

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

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

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

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

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

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

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

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

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

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

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

• jeanslee.org• JCyclone• BPEL

… and counting

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

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

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

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

Спасибо

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

GridDynamics – Scaling mission-critical systems