PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Performance evaluation of microservices communication with REST, GraphQL, and gRPC

Treść / Zawartość
Identyfikatory
Warianty tytułu
Języki publikacji
EN
Abstrakty
EN
Microservice architecture has become the design paradigm for creating scalable and maintainable software systems. Selecting the proper communication protocol in microservices is critical to achieving optimal system performance. This study compares the performance of three commonly used API protocols: REST, GraphQL, and gRPC, in microservices architecture. In this study, we established three microservices implemented in three containers and each microservice contained a Redis and MySQL database. We evaluated the performance of these API protocols using two key performance metrics: response time and CPU Utilization. This study performs two distinct data retrieval: fetching flat data and fetching nested data, with a number of requests ranging from 100 to 500 requests. The experimental results indicate that gRPC has a faster response time, followed by REST and GraphQL. Moreover, GraphQL shows higher CPU Utilization compared to gRPC and REST. The experimental results provide insight for developers and architects seeking to optimize their microservices communication protocols for specific use cases and workloads.
Słowa kluczowe
EN
microservice   API   gRPC   REST   GraphQL  
Twórcy
  • Department of Informatics, Faculty of Engineering, Hasanuddin University, Gowa, South Sulawesi, Indonesia
  • Department of Informatics, Faculty of Engineering, Hasanuddin University, Gowa, South Sulawesi, Indonesia
  • Department of Informatics, Faculty of Engineering, Hasanuddin University, Gowa, South Sulawesi, Indonesia
autor
  • Department of Informatics, Faculty of Engineering, Hasanuddin University, Gowa, South Sulawesi, Indonesia
Bibliografia
  • [1] I. Karabey Aksakalli, T. Cęlik, A. B. Can, and B. Tekinerdoğan, “Deployment and communication patterns in microservice architectures: A systematic literature review,” Journal of Systems and Software, vol. 180, p. 111014, 2021. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S0164121221001114.
  • [2] G. S. M. Diyasa, G. S. Budiwitjaksono, H. A. Ma’rufi, and I. A. W. Sampurno, “Comparative analysis of rest and graphql technology on nodejs-based api development,” Nusantara Science and Technology Proceedings, pp. 43–52, Apr. 2021. [Online]. Available: https://nstproceeding.com/index.php/nuscientech/article/view/322.
  • [3] M. Vesić and N. Kojić, “Comparative analysis of web application performance in case of using rest versus graphql,” in Proceedings of the Fourth International Scientific Conference on Recent Advances in Information Technology, Tourism, Economics, Management and Agriculture (ITEMA), Online-Virtual, 2020, pp. 17-24. [Online]. Available: https://doi.org/10.31410/ITEMA.2020.17.
  • [4] Y. Lee and Y. Liu, “Using refactoring to migrate rest applications to grpc,” in Proceedings of the 2022 ACM Southeast Conference, ser. ACMSE ’22. New York, NY, USA: Association for Computing Machinery, 2022, p. 219-223. [Online]. Available: https://doi.org/10.1145/3476883.3520220.
  • [5] N. Vohra and I. B. K. Manuaba, “Implementation of rest api vs graphql in microservice architecture,” in 2022 International Conference on Information Management and Technology (ICIMTech). IEEE, 2022, pp. 45-50. [Online]. Available: https://doi.org/10.1109/ICIMTech55957.2022.9915098.
  • [6] S. L. Vadlamani, B. Emdon, J. Arts, and O. Baysal, “Can graphql replace rest? a study of their efficiency and viability,” in 2021 IEEE/ACM 8th International Workshop on Software Engineering Research and Industrial Practice (SER&IP). IEEE, 2021, pp. 10-17. [Online]. Available: https://doi.org/10.1109/SER-IP52554.2021.00009.
  • [7] A. Lawi, B. L. Panggabean, and T. Yoshida, “Evaluating graphql and rest api services performance in a massive and intensive accessible information system,” Computers, vol. 10, no. 11, p. 138, 2021. [Online]. Available: https://doi.org/10.3390/computers10110138.
  • [8] B. Lama, “Implementing graphql in existing rest api,” B. S. Thesis, Universitat Politècnica de Catalunya, 2019.
  • [9] M. Vogel, S. Weber, and C. Zirpins, “Experiences on migrating restful web services to graphql,” in Service-Oriented Computing - ICSOC 2017 Workshops: ASOCA, ISyCC, WESOACS, and Satellite Events, Málaga, Spain, November 13-16, 2017, Revised Selected Papers. Springer, 2018, pp. 283-295. [Online]. Available: https://doi.org/10.1007/978-3-319-91764-1 23.
  • [10] P. Margański and B. Pańczyk, “Rest and graphql comparative analysis,” Journal of Computer Sciences Institute, vol. 19, pp. 89-94, 2021. [Online]. Available: https://doi.org/10.35784/jcsi.2473.
  • [11] M. Mikuła and M. Dzieńkowski, “Comparison of rest and graphql web technology performance,” Journal of Computer Sciences Institute, vol. 16, pp. 309-316, 2020. [Online]. Available: https://doi.org/10.35784/jcsi.2077.
  • [12] M. Seabra, M. F. Nazário, and G. Pinto, “Rest or graphql? a performance comparative study,” in Proceedings of the XIII Brazilian Symposium on Software Components, Architectures, and Reuse, 2019, pp. 123-132. [Online]. Available: https://doi.org/10.1145/3357141.3357149.
  • [13] M. D. C. França and E. da Silva, “Performance evaluation of rest and graphql apis searching nested objects,” Anais do Computer on the Beach, vol. 11, no. 1, pp. 237–244, 2020. [Online]. Available: https://doi.org/10.14210/cotb.v11n1.p237-244.
  • [14] G. Brito, T. Mombach, and M. T. Valente, “Migrating to graphql: A practical assessment,” in 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 2019, pp. 140-150. [Online]. Available: https://doi.org/10.1109/SANER.2019.8667986.
  • [15] H. Vo, “Applying microservice architecture with modern grpc api to scale up large and complex application,” 2021. [Online]. Available: https://urn.fi/URN:NBN:fi:amk-2021060314024.
  • [16] M. Stefanic, “Developing the guidelines for migration from restful microservices to grpc,” Masaryk University, Faculty of Informatics, Brno, pp. 1-81, 2021. [Online]. Available: https://is.muni.cz/th/ozxws/.
  • [17] B. P. Rebrošová, “grpc layer for content delivery in kentico kontent,” Master’s thesis, Masaryk University, 2021. [Online]. Available: https://is.muni.cz/th/d1f9l/Masters Thesis.pdf.
  • [18] K. Nieman and S. Sajal, “A comparative analysis on load balancing and grpc microservices in kubernetes,” in 2023 Intermountain Engineering, Technology and Computing (IETC). IEEE, 2023, pp. 322-327. [Online]. Available: https://doi.org/10.1109/IETC57902.2023.10152023.
  • [19] M. Vasiljević, A. Manasijević, A. Kupusinac, Ć. Sukić, and D. Ivetić, “One solution of component based development in nodejs for modularization of grpc services and rapid prototyping,” SAR J, vol. 2, pp. 181-185, 2019. [Online]. Available: https://doi.org/10.18421/SAR24-06.
  • [20] M. Araújo, M. E. Maia, P. A. Rego, and J. N. De Souza, “Performance analysis of computational offloading on embedded platforms using the grpc framework,” in 8th International Workshop on ADVANCEs in ICT Infrastructures and Services (ADVANCE 2020), 2020, pp. 1-8. [Online]. Available: https://hal.science/hal-02495252.
  • [21] R. T. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, and T. Berners-Lee, “Architectural styles and the design of network-based software architectures,” Ph.D. dissertation, UC Irvine, 2000. [Online]. Available: https://ics.uci.edu/∼fielding/pubs/dissertation/top.htm.
  • [22] The GraphQL Foundation. (2015) ”graphql”,. Accessed: September 26, 2023. [Online]. Available: https://graphql.org/.
  • [23] Louis Ryan (Google). (2015) ”grpc”,. Accessed: September 16, 2023. [Online]. Available: https://grpc.io.
  • [24] The Apache Software Foundation. (n.d) ”apache jmeter”,. Accessed: October 23, 2022. [Online]. Available: https://jmeter.apache.org/.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-a7ec61e6-07d8-4d03-be1c-adc36c7a4499
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ć.