RPC
- Springboot其实就是 RPC的一种
RPC 与 HTTP 对比
-
RPC 基于TCP,也可以是HTTP
-
Http2.0 以后和RPC相差不大
-
RPC支持长连接
-
RPC 可以基于很多序列化方式,例如thrift
-
HTTP 主要是通过JSON,序列化和反序列化效率较低
-
一般RPC框架都带有注册中心
-
一般带有负载均衡测量,而Http借助第三方工具,如nginx
HttpClient 实现RPC
在JDK 中java.net包下提供用户http访问的基本功能
其实就是通过 一个客服端浏览器的 形式 进行 对于服务器的访问,可以实现get、post请求的操作,可以自己实现请求头、请求行、请求体等操作
RMI 实现 RPC
RMI register注册表 是放置所有服务器对象的命名空间,每次服务端创建一个对象时,他都会使用bind() 或 rebind() 去注册对象。调用对象,客服端需要引用该对象
通过简单的RMI协议 加上zookeeper作为注册中心,实现一个简单的RPC框架。
简单RPC的实现源码gitee地址