Abstract
Microservice architecture splits the traditional monolithic application into different small services. Differences in programming language and data structure make communication between each service difficult, and the communication performance between services directly affects the performance of the entire microservice architecture. Thus, communication performance improvement between services has become a challenge for microservice architectures. This study proposes a microservice service communication technique called remote procedure call multiple (RPCM), which uses different network communication models to achieve inter-service communication based on the domain in which the services are located. RPCM can be used to improve the communication performance between services. We conducted performance stress comparison experiments between RPCM and two other service communication technologies. We evaluated RPCM’s performance by measuring the time spent processing requests and transaction performance stress metrics, such as transactions per second, using different threads and numbers of requests in both local and remote domains. The extensive experimental results showed that RPCM performs significantly better than the other techniques under local domain conditions. Furthermore, RPCM helps deploy different services based on the performance requirements to achieve the best microservice communication performance.
Similar content being viewed by others
Availability of data and materials
The datasets generated during and/or analyzed during the current study are available from the corresponding author upon reasonable request.
References
Arzo ST, Bassoli R, Granelli F et al (2021) Multi-agent based autonomic network management architecture. IEEE Trans Netw Serv Manag pp 3595–3618, 305975. https://doi.org/10.1109/TNSM.2021.3059752
Kookarinrat P, Temtanapat Y (2016) Design and implementation of a decentralized message bus for microservices. In: 13th international joint conference on computer science and software engineering (JCSSE), pp 1–6. https://doi.org/10.1109/JCSSE.2016.7748869
Hasselbring W (2016) Microservices for scalability: keynote talk abstract. In: Proceedings of the 7th ACM/SPEC international conference on performance engineering, Acad. Med., pp 133–134. https://doi.org/10.1145/2851553.2858659
Cloud J (2013) Decomposing Twitter: adventures in service-oriented architecture, QConNY
Cockroft A (2017) Microservices workshop, Why, what, and how to get there. In: Microservices workshop all topics deck. http://www.slideshare.net/adriancockcroft/microservices-workshop-craft-conference. Accessed 15 November 2022
Hauswald J, Laurenzano MA, Zhang Y et al (2015) Sirius: an open end-to-end voice and vision personal assistant and its implications for future warehouse scale computers. In: Proc. 20th int conf, archit support program languages oper syst, pp. 223–238. https://doi.org/10.1145/2775054.2694347
Richardson C (2019) Microservices patterns: with examples in Java. Manning Publications, New York
AF_UNIX. https://man7.org/linux/man-pages/man7/unix.7.html. Accessed 1 November 2022
gRPC (2022) https://www.grpc.io/. Accessed 1 November 2022
IBM (2022) Remote procedure call. https://www.ibm.com/docs/en/aix/7.1?topic=concepts-remote-procedure-call. Accessed 1 November 2022
Pautasso C (2014) RESTful web services: principles, patterns, emerging technologies. In: Bouguettaya A, Sheng Q, Daniel F (eds) Web services foundations. Springer, New York. https://doi.org/10.1007/978-1-4614-7518-7_2
Hasselbring W, Steinacker G (2017) Microservice architectures for scalability, agility and reliability in e-commerce 1. In: IEEE int. conf. software architecture workshops, IEEE Publications, pp 243–246. https://doi.org/10.1109/ICSAW.2017.11
Li L, Chou W (2011) Design and describe REST API without violating REST: a petri net-based approach. In: IEEE international conference on web services, pp 508–515. https://doi.org/10.1109/ICWS.2011.54
Kumar PK, Agarwal R, Shivaprasad R (2021) Performance characterization of communication protocols in microservice applications. In: Int. conf. smart communications and networking (SmartNets), IEEE Publications, pp 1–5. https://doi.org/10.1109/SmartNets50376.2021.9555425
Shafabakhsh B, Lagerström R, Hacks S (2020) Evaluating the impact of inter process communication in microservice architectures. In: 8th international workshop on quantitative approaches to software quality (QuASoQ), pp 55–63
Hong XJ, Yang HS, Kim YH (2018) Performance Analysis of RESTful API and RabbitMQ for microservice web application. In: International conference on information and communication technology convergence (ICTC), pp 257–259. https://doi.org/10.1109/ICTC.2018.8539409
Thrift. https://thrift.apache.org/. (Accessed 1 November 2022)
Rabbit MQ https://www.rabbitmq.com/documentation.html. (Accessed 1 November 2022)
Gan Y, Delimitrou C (2018) The architectural implications of cloud microservices. IEEE Comput Arch Lett 17:155–158. https://doi.org/10.1109/LCA.2018.2839189
Georgiou S, Spinellis D (2020) Energy-delay investigation of remote inter-process communication technologies. JSyst Softw. https://doi.org/10.1016/j.jss.2019.110506
Sriraman A, Wenisch TF (2018) suite: A benchmark suite for microservices. In: IEEE international symposium on workload characterization (IISWC), IEEE Publications, pp 1–12. https://doi.org/10.1109/IISWC.2018.8573515
Ueda T, Nakaike T (2016) Workload characterization for microservices. In: IEEE international symposium on workload characterization (IISWC), IEEE Publications pp 1–10. https://doi.org/10.1109/IISWC.2016.7581269
Tianlong Y, Noghabi SA, Raindel S et al (2016) Freeflow: High performance container networking. In: Proceedings of the 15th ACM workshop on hot topics in networks, Acad. Med., pp 43–49. https://doi.org/10.1145/3005745.3005756
Nakamura R, Sekiya Y, Tazaki H (2018) Grafting sockets for fast container networking. In: Proceedings of the 2018 symposium on architectures for networking and communications systems. Acad. Med., pp 15–27. https://doi.org/10.1145/3230718.3230723
Amaral M, Polo J, Carrera D et al (2015) Performance evaluation of microservices architectures using containers. In: 14th international symposium on network computing and applications, IEEE Publications, IEEE Publications pp 27–34. https://doi.org/10.1109/NCA.2015.49
Oracle (2022a) Dynamic proxy classes. https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html. Accessed 1 November 2022
Oracle (2022b) The JavaTM tutorials. https://docs.oracle.com/javase/tutorial/java/annotations. Accessed 1 November 2022
Google (2022 ) Protocol-buffers. https://developers.google.com/protocol-buffers. (Accessed 1 November 2022)
Ahmet AB (2021) Introducing WebSockets, HTTP/2 and gRPC bidirectional streams for Cloud Run. https://cloud.google.com/blog/products/serverless/cloud-run-gets-websockets-http-2-and-grpc-bidirectional-streams January 22, 2021
Spring (2022) Spring cloud OpenFeign. https://spring.io/projects/spring-cloud-openfeign. Accessed 1 November 2022
Fernando R (2019) Evaluating Performance of REST vs. gRPC. https://medium.com/@EmperorRXF/evaluating-performance-of-rest-vs-grpc-1b8bdf0b22da, April 3, 2019
Lee Y, Liu Y (2022) Using refactoring to migrate REST applications to gRPC, 2022 ACM Southeast conference (ACMSE 2022) pp 219–223. https://doi.org/10.1145/3476883.3520220
Funding
This work was supported by the Tianjin Science and Technology Plan project [Grant Number: 20YDTPJC00890]. The funding sources had no role in the study design, collection, analysis, and interpretation of data, writing of the report, or decision to submit the article for publication.
Author information
Authors and Affiliations
Contributions
Conceptualization: LZ; Writing: original draft: LZ; Writing: review and editing: KP, JX; Supervision: JX; Software: LZ; Data curation: KP; Visualization: KP; Validation: JX.
Corresponding author
Ethics declarations
Conflict of interest
The authors have no competing interests to declare.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Zhang, L., Pang, K. & Xu, J. High-performance microservice differentiated domain communication technology. Computing (2024). https://doi.org/10.1007/s00607-023-01232-3
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s00607-023-01232-3