Powiadomienia systemowe
- Sesja wygasła!
- Sesja wygasła!
Identyfikatory
Warianty tytułu
Porównanie wydajności mikroserwisów napisanych w oparciu o podejście reaktywne i imperatywne
Języki publikacji
Abstrakty
The purpose of this paper is to compare the performance of microservices based on reactive and imperative approaches. For this purpose, two microservice applications written in Java using the Spring programming framework were developed. The Spring Web and Spring Webflux modules were used for the conventional and reactive versions, respectively. During the tests, functionalities related to operations of retrieving and inserting records into the database, data processing, and file transfer were invoked. The Gatling tool was used to conduct the tests. The tests showed that reactive microservices can be more efficient in particular when there are delays in communication with services or the database. Otherwise, it depends on the complexity of the operations being performed. Microservices based on the reactive paradigm also use less RAM compared to conventional counterparts.
Celem pracy było porównanie wydajności mikroserwisów opartych o podejście reaktywne i imperatywne. Aby wykonać zadanie, stworzono dwie aplikacje mikroserwisowe napisane w języku Java z użyciem szkieletu programowania Spring. Wykorzystane zostały moduły Spring Web oraz Spring Webflux odpowiednio dla wersji konwencjonalnej i reaktywnej. W trakcie badań wywoływane były funkcjonalności związane z operacjami pobierania i wstawiania rekordów do bazy danych, przetwarzania danych, przesyłania plików. Do przeprowadzenia testów wykorzystano narzędzie Gatling. Badania wykazały, że mikroserwisy reaktywne mogą być wydajniejsze w szczególności w przypadku występowania opóźnień wkomunikacji z serwisami lub bazą danych. W innym razie jest to zależne od złożoności wykonywanych operacji. Mikroserwisy oparte o paradygmat reaktywny, wykorzystują również mniej pamięci RAM w porównaniu z konwencjonalnymi odpowiednikami.
Czasopismo
Rocznik
Tom
Strony
242--247
Opis fizyczny
Bibliogr. 12 poz., fig., tab.
Twórcy
autor
- Politechnika Lubelska (Poland)
autor
- Lublin University of Technology (Poland)
Bibliografia
- 1. J. Thönes, Microservices, IEEE Software 32(1) (2015) 113-116.DOI: https://doi.org/10.1109/MS.2015.11
- 2. T. Nurkiewicz, B. Christensen, Reactive Programming with RxJava: Creating asynchronous, event based applications, 1st Edition, O’Reilly Media , 2016.
- 3. Spring WebFlux Documentation, https://docs.spring.io/spring-framework/reference/web/webflux.html#webflux, [27.05.2023].
- 4. Project Reactor webpage, https://projectreactor.io/, [27.05.2023].
- 5. P. Dakowitz, Comparing reactive and conventional programming of Java based microservices in containerized environments, Master thesis, Haw Hamburg, 2018.
- 6. S. Iwanowski, G. Kozieł, Comparative analysis of reactive and imperative approach in Java Web application development, Journal of Computer Sciences Institute 24 (2022) 242-249.DOI: https://doi.org/10.35784/jcsi.2999
- 7. K. Dahlin, An evaluation of Spring Webflux with focus on built in SQL features, Master thesis, Mid Sweden University, 2020.
- 8. A. Nordlund, N.Nordstrom, Reactive vs Non-reactive Java Framework, Bachelor thesis, Mid Sweden University, 2022.
- 9. Sim, O. Barus, F. Jaya, Lessons Learned In Applying Reactive System In Microservices, Journal of Physics: Conf. Series 1175 (2019) 1-6.DOI: https://doi.org/10.1088/1742-6596/1175/1/012101
- 10. G. Hochbergs, Reactive Programming and its effect on performance and the development process, Master thesis, Lund University, 2017.
- 11. J. Ferreira, Reactive Microservices An Experiment, Master thesis, Polytechnic of Porto, 2022.
- 12. Gatling webpage, https://gatling.io/ , [27.05.2023]
Uwagi
Opracowanie rekordu ze środków MNiSW, umowa nr POPUL/SP/0154/2024/02 w ramach programu "Społeczna odpowiedzialność nauki II" - moduł: Popularyzacja nauki (2025).
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-d25291a6-3c3a-4c52-949a-9c694c774252
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.