coderleixiaoshuai/easy-rpc — explained in plain English
Analysis updated 2026-07-21 · repo last pushed 2022-10-26
Build your own mini RPC framework in Java to understand how remote service calls work.
Learn how ZooKeeper handles service registration and discovery in a distributed setup.
Study custom annotations and dynamic proxy patterns used to make remote calls feel local.
Practice Spring Boot auto-configuration by plugging the RPC starter into a standard app.
| coderleixiaoshuai/easy-rpc | redis/docs | zhisheng17/mybatis | |
|---|---|---|---|
| Stars | 69 | 69 | 66 |
| Language | Java | Java | Java |
| Last pushed | 2022-10-26 | — | 2017-04-23 |
| Maintenance | Dormant | — | Dormant |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a running ZooKeeper instance plus Java and Spring Boot, which means setting up an external dependency before the framework can function.
easy-rpc is a hands-on learning project that walks Java developers through building their own RPC (remote procedure call) framework from scratch. An RPC framework is what lets different parts of an application talk to each other across a network as if they were running on the same machine. The author built this project specifically so other developers could learn by doing rather than just reading someone else's source code. The project simulates a simplified version of Dubbo, a widely-used RPC framework in the Java ecosystem. On the server side, you mark a service with a custom annotation to expose it over the network. The service gets registered in ZooKeeper, which acts as a directory that keeps track of which services are available and where they live. On the client side, you use another annotation to automatically get a reference to that remote service, and then you can call its methods as though it were a local object. Under the hood, the project uses Netty for network communication, Java reflection, and dynamic proxy techniques to make the remote calls feel seamless. It also packages everything as a Spring Boot starter, so it plugs into a standard Spring Boot application with just a dependency and a couple of config lines. The primary audience is Java developers who want to deepen their understanding of how distributed service frameworks actually work. Rather than using a production-grade tool as a black box, you build a mini version yourself and learn the moving parts: service registration and discovery, network communication, custom annotations, Spring Boot auto-configuration, and more. The author pairs the code with a written tutorial series, making it approachable for someone who wants guided, step-by-step learning. The project is upfront about being a low-performance, educational tool, not something you would use in production. The tradeoff is intentional: by keeping the implementation simple, the code stays readable and approachable for learners, which matters more here than speed or reliability. The README doesn't go into detail about advanced features like load balancing or circuit breaking, though it hints that those concepts are part of the broader RPC landscape the series aims to cover over time.
A hands-on Java learning project that teaches you how to build a simple RPC framework from scratch, simulating a mini version of Dubbo using Spring Boot, Netty, and ZooKeeper.
Mainly Java. The stack also includes Java, Spring Boot, Netty.
Dormant — no commits in 2+ years (last push 2022-10-26).
The explanation does not mention a license, so the terms of use are unknown.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.