METHODS OF MODULE INTERACTION IN THE GRPC REMOTE PROCEDURE CALL PLATFORM
DOI:
https://doi.org/10.35546/kntu2078-4481.2024.4.32Keywords:
computer resources, distributed systems, gRPC, microservice architecture, module interaction, synchronous and asynchronous calls, publish-subscribe, message brokers, cloud computingAbstract
The article explores methods of module interaction within the gRPC remote procedure call platform to enhance the efficiency of distributed software systems built on microservice architecture. The primary challenge lies in selecting optimal interaction methods between modules in the face of increasing demands for performance, scalability, and reliability. Traditional communication methods, such as RESTful APIs, do not always deliver the required efficiency, particularly under high load conditions and stringent low-latency requirements. This can lead to inefficient resource usage, longer development times, and increased operational costs. During the study, a software application was developed to simulate various interaction scenarios between modules using gRPC. The experiments demonstrated that the use of asynchronous calls and streaming RPCs reduces latency, improves throughput, and decreases CPU and memory usage. These enhancements enable more efficient use of computational resources, lower operational expenses, and reduce the time required for system development and deployment. The implementation of the publish-subscribe model and integration with message brokers such as Kafka increases the system's fault tolerance, facilitates asynchronous interaction, and reduces the time needed to deploy new modules. However, this approach requires additional configuration and may increase the system's complexity. The results obtained empower developers to make informed decisions regarding the selection of interaction methods, thereby improving system performance, saving computational resources, shortening development and deployment times, and reducing overall operational costs.
References
About gRPC. [Електронний ресурс]. Режим доступу: https://grpc.io/about/. Дата доступу: 19.11.2024.
Babal H. gRPC Microservices in Go. Manning. 2023. 256p. ISBN9781633439207.
Indrasiri K., Kuruppu D. gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes. O`REILLY. 2020. 320p. ISBN 1492058335
Mamchych O., Volk M. A unified model and method for forecasting energy consumption in distributed computing systems based on stationary and mobile devices. Radioelectronic and Computer Systems, [S.l.], v. 2024, n. 2, pp. 120135. DOI: https://doi.org/10.32620/ reks.2024.2.10.
Newman S. Building Microservices: Designing Fine-Grained Systems – O'Reilly Media, 2015. 280p. ISBN 978-1491950357.
Jean К. gRPC Golang Master Class: Build Modern API & Microservices. Udemy. [Електронний ресурс] Режим доступу: https://www.udemy.com/course/grpc-golang/. Дата доступу: 19.11.2024.
Ibyram B., Huss R. Kubernetes Patterns: Reusable elements for designing cloud native applications, 2nd Edition. Red Hat Developer. 2023. 352p. ISBN 978-1-4919-5633-8.
Protocol Buffers Documentation. Google Developers. [Електронний ресурс] Режим доступу: https://developers.google.com/protocol-buffers/docs/overview. Дата доступу: 19.11.2024.
REST vs gRPC: Comparing HTTP APIs. [Електронний ресурс]. Режим доступу: https://refine.dev/blog/grpcvs-rest/. Дата доступу: 19.11.2024.
Katihar E. REST vs gRPC: Use Cases, Key Differences and Benefits. Medium. [Електронний ресурс]. Режим доступу: https://medium.com/@mail.ekansh/rest-vs-grpc-design-architecture-and-production-considerations-0a6369cd0a8c. Дата доступу: 18.11.2024.