Особенности коммуникации микросервисов при использовании шаблона сага
Автор: Малюга К.В., Перл И.А.
Журнал: Инфокоммуникационные технологии @ikt-psuti
Рубрика: Технологии компьютерных систем и сетей
Статья в выпуске: 4 т.19, 2021 года.
Бесплатный доступ
Сегодняшние облачные решения очень часто строятся на основе микросервисной архитектуры. При таком подходе система реализуется в виде набора слабо связанных сервисов, которые не разделяют общего хранилища и обмениваются данными и командами по сети. Наряду с преимуществами такая структура системы привносит свои недостатки, в частности - усложнение алгоритмов обеспечения согласованности данных. Известным решением проблемы является архитектурный шаблона сага, который подразумевает обеспечение итоговой согласованности, однако не формализует требования к свойствам отказоустойчивости системы, что может привести к отсутствию согласованности при изменении данных. В работе разбираются архитектурные особенности обеспечения отказоустойчивости в сагах в разрезе протоколов взаимодействия сервисов. Для этого был проанализирован ряд научных работ, посвященных сагам, и определены наиболее распространенные способы коммуникации. Для сформированного ряда протоколов были определены потенциальные уязвимости и предложены решения для сохранения отказоустойчивости в системе. Были показаны способы модификации взаимодействия сервисов с использованием стандартных реализаций протоколов для изменения наличия свойства синхронности взаимодействия микросервисов. Показаны преимущества использования таких технологий, как DLQ и CQRS, для формирования отказоустойчивых саг.
Распределенные системы, микросервисы, протоколы коммуникации, сага, отказоустойчивость, согласованность данных
Короткий адрес: https://sciup.org/140293919
IDR: 140293919
Список литературы Особенности коммуникации микросервисов при использовании шаблона сага
- Brown K., Woolf B. Implementation patterns for microservices architecture // Proceedings of the 23rd Conference on Pattern Languages of Programs (PLoP '16). 2016. P. 7-1-35.
- Two-phase commit optimizations and tradeoffs in the commercial environment / G. Samaras [et al.] // Proceedings of IEEE 9th International Conference on Data Engineering. 1993. P. 520-529.
- Towards dependable agent systems /j. Nimis [et al.] // Multiagent Engineering. 2006.
- Rudrabhatla C.Comparison of event choreography and orchestration techniques in microservice architecture // International Journal of Advanced Computer Science and Applications. 2018. P. 9.
- Štefanko M., Chaloupka O., Rossi B. The saga pattern in a reactive microservices environment // 14th International Conference on Software Technologies. 2019. P. 483-490.
- SagaMAS: ASoftware framework for distributed transactions in the microservice architecture / X. Limón [et al.] // 6th International Conference in Software Engineering Research and Innovation (CONISOFT). 2018. P. 50-58.
- Assessing migration of a 20-year-old system to a micro-service platform using ATAM / P. Cruz Navea [et al.] // IEEE International Conference on Software Architecture Companion (ICSA-C). 2019. P. 174-181.
- Microservice patterns for the life cycle of industrial edge software / F. Li [et al.] // EuroPLoP '18: Proceedings of the 23rd european conference on pattern languages of programs. 2018. P. 1-11.
- Richardson C. Microservices patterns. Shelter Island: Manning, 2018. 520 p.
- Li Z., Liang P., Avgeriou P. Architectural technical debt identification based on architecture decisions and change scenarios // Proceedings 12th Working IEEE/IFIP Conference on Software Architecture, WICSA. 2015. 63 p.
- Dürr K., Lichtenthäler R., Wirtz G. An evaluation of saga pattern implementation technologies // CEUR Workshop Proceedings. 2021. 74 p.
- Микросервисы // JetBrains. URL: https://www.jetbrains.com/ru-ru/lp/devecosystem-2021/microservices (дата обращения: 19.10.2021).
- Deploying microservice based applications with Kubernetes: Experiments and lessons learned / V. Leila [et al.] // IEEE 11th International Conference on Cloud Computing (CLOUD). 2018. P. 970-973.
- Fault tolerant central saga orchestrator in RESTful architecture / K. Malyuga [et al.] // Proceedings of the XXth Conference of Open Innovations Association FRUCT. 26. 2020. P. 278-283.
- Knoche H. Improving batch performance when migrating to microservices with chunking and coroutines // Softwaretechnik-Trends. 2019. No. 39 (4). P. 20-22.
- An empirical characterization of event sourced systems and their schema evolution - Lessons from industry / M. Overeem [et al.] // Journal of Systems and Software. 2021. 178 p.