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