Understanding HTTP vs RPC in Spring Cloud: A Practical Guide
This article explains why Spring Cloud uses HTTP instead of RPC for remote calls, compares HTTP and RPC protocols, describes how to implement a simple HTTP server in Java, outlines the principles of RESTful architecture, and discusses the advantages, disadvantages, and future trends of both approaches.
Greetings from a senior architect, introducing the topic of remote calls in Spring Cloud and why HTTP is preferred over RPC.
Spring Cloud relies on an embedded Tomcat container to provide web services; using HTTP with JSON payloads offers flexibility, cross‑platform compatibility, and can serve mobile H5, apps, and mini‑programs.
RPC, based on TCP, requires a three‑way handshake and binary serialization, making it suitable for stable, unchanging data formats but less flexible for dynamic business data.
Establishing a socket connection involves a client socket and a server socket, with steps of listening, requesting, and confirming.
Simple HTTP request handling
In a web application, a browser requests a URL and the server returns an HTML page via HTTP; a basic Java HTTP server can be implemented to demonstrate this.
RPC
Remote Procedure Call (RPC) is a method of inter‑process communication that allows a program to invoke functions on a remote machine as if they were local, abstracting the network details.
For example, two servers A and B can call each other's methods over the network, despite being in separate JVMs.
RPC consists of two core modules: communication and serialization.
All data must be serialized into binary streams for network transmission; the sender serializes, the receiver deserializes.
RESTful (HTTP)
RESTful defines a set of architectural constraints; when an architecture complies, it is called RESTful. It leverages existing web features and standards, typically implemented over HTTP.
Although RESTful is not bound to HTTP, HTTP is the most common implementation.
Differences between RPC and HTTP
Both involve request and response, but RPC aims to hide remote calls as local calls, requiring API‑level encapsulation, whereas HTTP leaves request/response details to the developer.
Advantages:
RPC offers transparency and convenience for users.
HTTP is more flexible, language‑agnostic, and cross‑platform.
Disadvantages:
RPC requires API encapsulation, limiting language choices.
Selection criteria:
Speed: RPC is generally faster; HTTP can be optimized with gzip.
Complexity: RPC is more complex; HTTP is simpler.
Flexibility: HTTP is more flexible and cross‑platform.
Future direction:
Microservices emphasize independence and flexibility; therefore many frameworks adopt HTTP‑based RESTful services over RPC.
After the technical discussion, the article includes promotional content for ChatGPT services, a knowledge‑sharing community, and various offers.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.