Details

Title: Разработка модуля управления распределенными транзакциями в микросервисной архитектуре: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_01 «Разработка компьютерных систем»
Creators: Чупрынин Илья
Scientific adviser: Тарасов Олег Михайлович
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint: Санкт-Петербург, 2024
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: микросервисы; распределенные транзакции; согласованность данных; java; microservices; distributed transactions; data consistency
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 09.03.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2024/vr/vr24-1691
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally: New arrival
Record key: ru\spstu\vkr\28759

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Данная работа посвящена изучению проблемы обеспечения транзакционности в микросервисной архитектуре, а также разработке модуля, который будет решать данную проблему. Задачи, которые решались в ходе работы: изучение существующих подходов и их анализ; описание принципа работы и основных особенностей предлагаемого подхода; реализация программных компонентов; проведение тестирования системы.     В работе приведены обзор и анализ существующих подходов, решающих проблему согласованности данных, делается выбор в пользу шаблона проектирования «SAGA» с орекстрацией. Производится обзор готовых решений и обосновывается потребность написания своего Saga оркестратора.     В результате работы были разработаны программные компоненты, которые отвечают поставленным требованиям. Работоспособность разработанного модуля была проверена модульными и нагрузочными тестами. Нагрузочное тестирование показало что при указанных в главе 6 конфигурациях тестового стенда система обрабатывает 805.73 запроса в секунду. Максимальное ожидание окончания транзакции, без сбоев, составляет 92.86 милисекунды.

This work is devoted to the study of the problem of ensuring transactionality in microservice architecture, as well as the development of a module that will solve this problem. The tasks that were solved during the work: the study of existing approaches and their analysis; description of the principle of operation and the main features of the proposed approach; implementation of software components; testing of the system.     The paper provides an overview and analysis of existing approaches that solve the problem of data consistency, and a choice is made in favor of the "SAGA" design pattern with orectration. A review of ready-made solutions is made and the need to write your own Saga orchestrator is justified.     As a result of the work, software components have been developed that meet the set requirements. The performance of the developed module has been verified by modular and load tests. Load testing showed that with the test bench configurations specified in section 6, the system processes 805.73 requests per second, the maximum waiting time for the transaction to end, without failures, is 92.86 milliseconds.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
-> Internet Anonymous

Table of Contents

  • ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, ТЕРМИНОВ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • 1. ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1. Введение в предметную область
    • 1.2. CAP теорема
    • 1.3. Протокол двухфазного коммита
      • 1.3.1. Фаза подготовки
      • 1.3.2. Фаза фиксации
      • 1.3.3. Проблемы протокола 2PC
      • 1.3.4. Оптимизация протокола
    • 1.4. Протокол Трехфазного коммита
      • 1.4.1. Фаза подготовки
      • 1.4.2. Фаза предварительной фиксации
      • 1.4.3. Фаза фиксации
      • 1.4.4. Проблемы протокола трехфазного коммита
    • 1.5. Шаблон SAGA
    • 1.6. Spring Framework
      • 1.6.1. Глобальные транзакции в Spring Framework
      • 1.6.2. Локальные транзакции в Spring Framework
    • 1.7. Обзор готовых решений
      • 1.7.1. Внутренние инструменты баз данных
      • 1.7.2. Apache Camel
      • 1.7.3. Temporal
    • 1.8. Резюме
  • 2. ГЛАВА 2. ПОСТАНОВКА ЗАДАЧИ И ВЫБОР ПУТИ РЕШЕНИЯ
    • 2.1. Описание архитектуры микросервисов
    • 2.2. Выбор подхода
    • 2.3. Рассмотрение языков программирования и их библиотек подпрограмм
      • 2.3.1. Golang
      • 2.3.2. Python
      • 2.3.3. C#
      • 2.3.4. Java
    • 2.4. Сравнение языков программирования и выбор подходящего языка
    • 2.5. Рассмотрение СУБД
      • 2.5.1. H2
      • 2.5.2. MySQL
      • 2.5.3. PostgreSQL
    • 2.6. Выбор подходящей СУБД для решения задачи
    • 2.7. Резюме
  • 3. ГЛАВА 3. ПРОЕКТИРОВАНИЕ
    • 3.1. Инфраструктура
    • 3.2. Орекстратор
    • 3.3. Микросервисы
    • 3.4. Алгоритм проведения распределенной транзакции
    • 3.5. Резюме
  • 4. ГЛАВА 4. РАЗРАБОТКА
    • 4.1. Микросервисы
    • 4.2. Оркестратор
      • 4.2.1. Модуль логирования
      • 4.2.2. Модуль сборки глобальных транзакций
      • 4.2.3. Модуль обмена сообщениями
    • 4.3. Резюме
  • 5. ГЛАВА 5. ТЕСТИРОВАНИЕ
    • 5.1. Модульное тестирование
    • 5.2. Нагрузочное тестирование
    • 5.3. Резюме
  • 6. ЗАКЛЮЧЕНИЕ
  • 7. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Usage statistics

stat Access count: 0
Last 30 days: 0
Detailed usage statistics