Similar presentations:
TM_Vitali_Caraivanov_MIA2402_presentation
1. ПОДХОДЫ К ОБЕСПЕЧЕНИЮ СОГЛАСОВАННОСТИ ДАННЫХ В РАСПРЕДЕЛЕННОЙ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Подготовил: КараивановВиталий, группа MIA2402
2. Введение
• Актуальностьразработка и практическая апробация эффективных подходов
обеспечения согласованности данных
применение теоретических решений в реальных условиях
• Цели работы
исследование и реализация подходов к обеспечению
согласованности данных
анализ теоретических основ согласованности данных в
распределённых системах
исследование ограничений традиционных транзакционных
механизмов
изучение и сравнительный анализ современных подходов
анализ полученных результатов и оценка эффективности
предложенных решений
3. Характеристики распределенных систем
Распределённая системапредставляет собой
совокупность автономных
вычислительных узлов,
объединённых
коммуникационной сетью
и взаимодействующих
между собой с целью
совместного решения
вычислительных задач.
4. Виды согласованности данных
5. CAP и PACELC
• CAP сформулирована ЭрикомБрюэром в 2000 году в виде
гипотезы (доказана в 2002 году
С. Гилбертом и Н. Линч)
• PACELC была впервые описана Дэниелом
Абади в 2010 году
6. Two-Phase Commit (2PC)
7. Outbox Pattern
8. Saga
9. ТЕХНОЛОГИИ ДЛЯ РЕАЛИЗАЦИИ ПРАКТИЧЕСКОЙ ЧАСТИ
Использованные технологии:• Spring Boot
• СУБД: PostgreSQL
• VCS – Git
• Building tool – Maven
• Межсервисное общение –
Apache Kafka
• Docker – для контейнеризации
10. ПРАКТИЧЕСКАЯ ЧАСТЬ
11. ER диаграмма
12. Общение микросервисов при помощи Kafka
13. Диаграмма состояний заказа
14. Диаграмма состояний резерваций
15. Документирование и тестирование API через Postman
16. Authentication Demo
17. GET product by ID and GET reservation by ID
18. SAGA Demo: successful reservation of a product
19. SAGA Demo: Failure on reservation phase
20. Заключение
Были выполнены цели магистерской работы исследованы и реализованы на практике подходы кобеспечению согласованности данных, проанализированы
теоретические основы согласованности данных в
распределённых системах, изучены и сравнены
современные подходы для ее достижения.
Рекомендации по улучшению:
1. Реализация клиентской части (frontend)
2. Определение большего количества функциональных
требований => реализация нового функционала
3. Интеграция реальной платежной системы