-
Notifications
You must be signed in to change notification settings - Fork 0
zyk1218/rpc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
RPC的实现原理 RPC可以基于TCP协议也可以基于HTTP协议,RPC的主要目的只是获取由远程机器上的程序所执行的结果。 利用Socket API实现基于TCP协议的RPC调用,由服务的调用方与服务的提供方建立Socket连接, 并由服务的调用方通过Socket将需要调用的接口名称、方法名称和参数序列化后传递给服务的提供方, 服务的提供方反序列化后再利用反射调用相关的方法,最后将结果返回给服务的调用方。 基于HTTP协议的RPC调用则更像是我们访问网页一样,只是它的返回结果更加单一简单。 其大致流程为:由服务的调用者向服务的提供者发送请求,这种请求的方式可能是GET、POST、PUT、DELETE等 中的一种(服务的提供者可能会根据不同的请求方式做出不同的处理,或者某个方法只允许某种请求方式), 而调用的具体方法则根据URL进行方法调用,而方法所需参数则可能是对服务调用方传输过去的XML数据或JSON数据解析后的结果, 最后返回JOSN或XML的数据结果(这需要根据实际应用定义相关的协议)。由于目前有很多开源的WEB服务器,如Tomcat,JBoss等, 所以其实现起来更加容易(就跟做Web项目一样)。
About
Handwritten rpc frame
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published