【读书笔记】1.1-基于TCP协议的RPC
【读书笔记】1.1-基于TCP协议的RPC
1.1.1RPC名词解释
-
概念
-
全称Remote Process Call,即远程过程调用
-
rpc的实现包括服务的调用方和服务的提供方
-
-
过程
-
服务调用方发送RPC请求到服务提供方,服务提供方根据调用方提供的参数执行请求方法,将执行的结果返回给调用方,一次RPC调用完成
-
-
-
使用原因
-
单台服务器处理能力有限,RPC可提升系统处理能力和吞吐量,也是实现分布式计算的基础
-
1.1.2对象序列化
-
序列化原因
-
任何形式的数据都需要转换成二进制流在网络传输
-
-
概念
-
对象序列化-将对象转换为二进制流的过程
-
对象反序列化-将二进制流恢复为对象的过程
-
-
解决方案
-
Google的Protocal Buffers
-
Java内置的序列化方式
-
Hessian
引入二方包hession.jar
-
JSON和XML
-
1.1.3基于TCP协议实现RPC
-
原理
-
基于java的反射机制和Socket API实现
-
方法的调用使用反射机制,消费者把需要调用的接口名称方法参数通过Socket通道传到服务端,服务端再通过反射机制调用对应的方法获取到值。然后再通过相同方式把结果返回给消费端
-
-
场景
-
服务消费者调用服务提供者的SayHelloService接口的sayHello()方法具体实现获取结果
-
-
关键代码
-
服务提供者
-
服务提供者
-
-
总结
-
真实环境中,多个客户端多个请求,服务端需要同时接收和处理,涉及并发、路由、负载均衡等问题,以上代码无法满足。
-
下期预告:
1.1.1RPC名词解释
-
概念
-
全称Remote Process Call,即远程过程调用
-
rpc的实现包括服务的调用方和服务的提供方
-
-
过程
-
服务调用方发送RPC请求到服务提供方,服务提供方根据调用方提供的参数执行请求方法,将执行的结果返回给调用方,一次RPC调用完成
-
-
-
使用原因
-
单台服务器处理能力有限,RPC可提升系统处理能力和吞吐量,也是实现分布式计算的基础
-
1.1.2对象序列化
-
序列化原因
-
任何形式的数据都需要转换成二进制流在网络传输
-
-
概念
-
对象序列化-将对象转换为二进制流的过程
-
对象反序列化-将二进制流恢复为对象的过程
-
-
解决方案
-
Google的Protocal Buffers
-
Java内置的序列化方式
-
Hessian
引入二方包hession.jar
-
JSON和XML
-
1.1.3基于TCP协议实现RPC
-
原理
-
基于java的反射机制和Socket API实现
-
方法的调用使用反射机制,消费者把需要调用的接口名称方法参数通过Socket通道传到服务端,服务端再通过反射机制调用对应的方法获取到值。然后再通过相同方式把结果返回给消费端
-
-
场景
-
服务消费者调用服务提供者的SayHelloService接口的sayHello()方法具体实现获取结果
-
-
关键代码
-
服务提供者
-
服务提供者
-
-
总结
-
真实环境中,多个客户端多个请求,服务端需要同时接收和处理,涉及并发、路由、负载均衡等问题,以上代码无法满足。
-
下期预告: