ПОДХОДЫ К ОБЕСПЕЧЕНИЮ СОГЛАСОВАННОСТИ ДАННЫХ В РАСПРЕДЕЛЕННОЙ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Введение
Характеристики распределенных систем
Виды согласованности данных
CAP и PACELC
Two-Phase Commit (2PC)
Outbox Pattern
Saga
ТЕХНОЛОГИИ ДЛЯ РЕАЛИЗАЦИИ ПРАКТИЧЕСКОЙ ЧАСТИ
ПРАКТИЧЕСКАЯ ЧАСТЬ
ER диаграмма
Общение микросервисов при помощи Kafka
Диаграмма состояний заказа
Диаграмма состояний резерваций
Документирование и тестирование API через Postman
Authentication Demo
GET product by ID and GET reservation by ID
SAGA Demo: successful reservation of a product
SAGA Demo: Failure on reservation phase
Заключение
16.93M

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. Интеграция реальной платежной системы

21.

Спасибо за внимание
English     Русский Rules