EasyRPC
EasyRPC是一个远程过程调用(Remote Procedure Call,简称RPC)的最小实现。它使用极少的类、方法演示了RPC的实现原理,是一个学习RPC工作原理的良好示例。
Install / Use
/learn @yeecode/EasyRPCREADME
EasyRPC
EasyRPC是一个远程过程调用(Remote Procedure Call,简称RPC)的最小实现。它使用极少的类、方法演示了RPC的实现原理,是一个学习RPC工作原理的良好示例。
该项目十分简单,包括客户端EasyRpcClient和服务端EasyRpcServer两部分。演示时,EasyRpcClient会通过RPC调用EasyRpcServer中的方法。
功能演示
从/client/target/文件夹下下载最新版的EasyRpcClient-x.x.x.jar文件,并使用下面的命令启动:
java -jar EasyRpcClient-x.x.x.jar
则EasyRpcClient启动,并工作在12310端口。
从/server/target/文件夹下下载最新版的EasyRpcServer-x.x.x.jar文件,并使用下面的命令启动:
java -jar EasyRpcServer-x.x.x.jar
则EasyRpcServer启动,并工作在12311端口。
然后可以调用以下几个方法:
127.0.0.1:12310/getUserCount127.0.0.1:12310/getUserInfo127.0.0.1:12310/addUser127.0.0.1:12310/querySchoolName
上面几个方法会被则EasyRpcClient接收。然后,EasyRpcClient会通过RPC调用EasyRpcServer获得操作结果,并返回。
功能实现
EasyRpcClient实现
业务代码类为MainController、SchoolService、UserService三个类。其中MainController类负责接收外部请求并调用SchoolService、UserService。SchoolService、UserService是两个接口,并不包含实现,其具体实现由EasyRpcServer提供。
RPC代码类在rpc子包中,主要完成动态代理、远程调用参数序列化、远程调用发起、远程调用结果反序列化等工作。

EasyRpcServer实现
业务带代码类为SchoolService、UserService两个类,类中包含具体实现。EasyRpcClient通过RPC最终调用了这里的代码。
RPC代码类在rpc子包中,主要完成远程调用接收、调用参数反序列化、调用实际触发、调用结果序列化等工作。

Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
