УПРАВЛІННЯ ТРАНЗАКЦІЯМИ В МІКРОСЕРВІСНІЙ АРХІТЕКТУРІ

Автор(и)

DOI:

https://doi.org/10.32782/tnv-tech.2023.2.1

Ключові слова:

мікросервіси, мікросервісна архітектура, розподілені транзакції, узгодженість даних, двофазна фіксація, шаблон проєктування Saga

Анотація

Використання мікросервісної архітектури є популярним підходом до розробки сучасних програмних систем. Мікросервіси застосовуються у великих Інтернет-проєктах, які обслуговують значну кількість користувачів. Додатки з мікросервісною архітектурою мають багато переваг, таких, як висока доступність, відмовостійкість, гнучкість, масштабованість. Поряд з перевагами такого підходу існують і недоліки. У розподіленій системі, що складається з багатьох служб, управління транзакціями, що охоплюють кілька сервісів, є складним завданням. Оскільки мікросервіси слабко пов’язані між собою, а дані, що використовуються розподіленою транзакцією, зберігаються на різних вузлах у мережі, існує проблема узгодженості даних. Метою статті є дослідження способів управління транзакціями в мікросервісах та забезпечення узгодженості даних, виявлення переваг та недоліків застосування існуючих шаблонів проєктування. У статті обговорюється використання протоколу двофазної фіксації 2PC і шаблону проєктування Saga. 2PC – це надійний протокол узгодженості даних для мікросервісів. Але це форма синхронної взаємодії, в результаті якої служби зв’язуються під час виконання, що значно впливає на доступність додатку. Якщо висока доступність застосування є пріоритетною вимогою, то як основу для розробки краще вибрати шаблон проєктування Saga. Він вирішує проблему виконання транзакцій, що охоплюють декілька сервісів. Для забезпечення узгодженості даних Saga використовується у поєднанні з патерном Event sourcing або Transactional Outbox. Використання шаблону саги на основі хореографії забезпечує вищу продуктивність сервісів порівняно з оркестрацією. Його краще використовувати для сценаріїв, у яких час відповіді критичний, кількість сервісів, що приймають участь у розподіленій транзакції, невелика. Шаблон на основі оркестрації повільніший за хореографію, але він є кращим вибором для обробки складних сценаріїв транзакцій.

Посилання

Richardson Ch. Microservices patterns. Manning Publications, 2019. 520 p.

Newman S. Building Microservices: Designing Fine-Grained Systems. O’Reilly Media, 2015. 280 p.

Бугаєва І.Г., Розум М.В. Реалізація міжпроцесної взаємодії в мікросервісній архітектурі. Вiсник Одеського національного морського унiверситету: Зб. наук. праць. 2022. № 1(67). С. 81–89.

Rudrabhatla Ch. K. Comparison of Event Choreography and Orchestration Techniques in Microservice Architecture. International Journal of Advanced Computer Science and Applications. 2018. Vol. 9, No. 8.

Kristianto H., Zahra A. Performance analysis of choreography and orchestration in microservices architecture. Journal of Theoretical and Applied Information Technology. 2021. Vol. 99, No.18.

Harding R., Aken D. V., Pavlo A., Stonebraker M. An Evaluation of Distributed Concurrency Control. Proceedings of the VLDB Endowment. 2017. Vol. 10, No. 5.

Garcia-Molina H., Salem K. SAGAS. Proceedings of the 1987 ACM SIGMOD international conference on Management of data. 1987. P. 249–259.

##submission.downloads##

Опубліковано

2023-08-11

Як цитувати

Бугаєва, І. Г., Розум, М. В., Ларін, Д. Г., & Ткаченко, М. Г. (2023). УПРАВЛІННЯ ТРАНЗАКЦІЯМИ В МІКРОСЕРВІСНІЙ АРХІТЕКТУРІ. Таврійський науковий вісник. Серія: Технічні науки, (2), 3-13. https://doi.org/10.32782/tnv-tech.2023.2.1

Номер

Розділ

КОМП’ЮТЕРНІ НАУКИ ТА ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ