Skip to main content
Log in

High-performance microservice differentiated domain communication technology

  • Special Issue Article
  • Published:
Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

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

  1. 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

  2. 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

  3. 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

  4. Cloud J (2013) Decomposing Twitter: adventures in service-oriented architecture, QConNY

  5. 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

  6. 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

  7. Richardson C (2019) Microservices patterns: with examples in Java. Manning Publications, New York

    Google Scholar 

  8. AF_UNIX. https://man7.org/linux/man-pages/man7/unix.7.html. Accessed 1 November 2022

  9. gRPC (2022) https://www.grpc.io/. Accessed 1 November 2022

  10. IBM (2022) Remote procedure call. https://www.ibm.com/docs/en/aix/7.1?topic=concepts-remote-procedure-call. Accessed 1 November 2022

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. Thrift. https://thrift.apache.org/. (Accessed 1 November 2022)

  18. Rabbit MQ https://www.rabbitmq.com/documentation.html. (Accessed 1 November 2022)

  19. 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

    Article  Google Scholar 

  20. 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

    Article  Google Scholar 

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. Oracle (2022a) Dynamic proxy classes. https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html. Accessed 1 November 2022

  27. Oracle (2022b) The JavaTM tutorials. https://docs.oracle.com/javase/tutorial/java/annotations. Accessed 1 November 2022

  28. Google (2022 ) Protocol-buffers. https://developers.google.com/protocol-buffers. (Accessed 1 November 2022)

  29. 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

  30. Spring (2022) Spring cloud OpenFeign. https://spring.io/projects/spring-cloud-openfeign. Accessed 1 November 2022

  31. Fernando R (2019) Evaluating Performance of REST vs. gRPC. https://medium.com/@EmperorRXF/evaluating-performance-of-rest-vs-grpc-1b8bdf0b22da, April 3, 2019

  32. 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

Download references

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

Authors

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

Correspondence to Lei Zhang.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s00607-023-01232-3

Keywords

Mathematics Subject Classification

Navigation