Upload
rit2010
View
501
Download
3
Embed Size (px)
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