Особенности коммуникации микросервисов при использовании шаблона сага

Автор: Малюга К.В., Перл И.А.

Журнал: Инфокоммуникационные технологии @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.
Еще
Статья научная