DOI
10.34229/KCA2522-9664.24.3.15
УДК 004.41
А.М. ГЛИБОВЕЦЬ
Національний університет «Києво-Могилянська академія», Київ, Україна,
a.glybovets@ukma.edu.ua
І.А. ПАПРОЦЬКИЙ
Національний університет «Києво-Могилянська академія», Київ, Україна,
i.paprotskyi@ukma.edu.ua
ПІДВИЩЕННЯ ВІДМОВОСТІЙКОСТІ
В МІКРОСЕРВІСНІЙ АРХІТЕКТУРІ
Анотація. Мікросервісну архітектуру широко використовують під час побудови розподілених застосунків. Уже розв’язано багато проблем, що були наявні на початку використання цього підходу. Але досі залишається не розв’язаною одна з фундаментальних проблем, що серйозно впливає на відмовостійкість системи. Вона має назву «гарантована доставка повідомлень між сервісами». У статті проаналізовано стандартні підходи до розв’язання цієї проблеми. На основі проведеного аналізу виокремлено патерн Circuit Breaker та здійснено його модифікацію, що дало змогу зменшити затримку переходу між станами, а відповідно й відправлення повідомлень сервісом. Експериментально підтверджено ефективність запропонованої модифікації. Результат модифікації оформлено у вигляді швидкої конфігурації для Spring Boot.
Ключові слова: мікросервісна архітектура, відмовостійкість, мікросервіс, патерн, Circuit Breaker.
повний текст
СПИСОК ЛІТЕРАТУРИ
- The state of developer ecosystem in 2022 infographic. JetBrains. 2022. URL: https://www.jetbrains.com/lp/devecosystem-2022/microservices/.
- Nadareishvili I., Mitra R., McLarty M., Amundsen M. Microservice Architecture: Aligning Principles, Practices, and Culture. O’Reilly Media, Incorporated, 2016. 128 p. URL: https://books.google.com.ua/books/.
- Nygard M.T. Release it! 2nd ed. Design and Deploy Production-Ready Software. Raleigh, North Carolina: The Pragmatic Bookshelf, 2014. 356 p. URL: http://repo.darmajaya.ac.id/4586/1/Release%20It .
- Brooker M. Exponential backoff and jitter. AWS Architecture Blog. 2015. URL: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/.
- May F. Microservices and cascading failures. Medium, 2018. URL: https://medium.com/@floyd.may/microservices-and-cascading-failures-16ec91c6ec9b .
- Fowler M. Circuit breaker. 2014. URL: https://martinfowler.com/bliki/CircuitBreaker.html .
- Netflix. Hystrix. 2017. URL: https://github.com/Netflix/Hystrix/wiki/.
- Istio. Documentation. Version 1.17.2. 2023. URL: https://istio.io/latest/docs/.
- Sentinel. Documentation. 2023. URL: https://sentinelguard.io/en-us/docs/introduction.html .
- Montesi F., Weber J. Circuit breakers, discovery, and API gateways in microservices. arXiv:1609.05830v2 [cs.SE] 21 Sep 2016. https://doi.org/10.48550/arXiv.1609.05830.
- Mendoca C., Aderaldo C.M., Cїmara J., Garlan D. Model-based analysis of microservice resiliency patterns. Proc. IEEE International Conference on Sogtware Architecture (ICSA 2020) (16–20 March 2020, Salvador, Brazil). Salvador, 2020. https://doi.org/10.1109/ICSA47634.2020.00019.
- Addeen H.H. A dynamic fault tolerance model for microservices architecture: Thesis Master of Science (MS). South Dakota State University, 2019. URL: https://openprairie.sdstate.edu/cgi/viewcontent.cgi?article=4417&context=etd .
- Resilience4j. Introduction. 2023. URL: https://resilience4j.readme.io/docs/getting-started .