博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

RCP简介(笔记一)

一、RCP概念

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。

二、实现方式

JDK动态代理

三、消息数据结构

客户端请求参数数据结构:

1、接口名称

2、方法名

3、参数类型&参数值

4、超时时间

5、requestID,标识唯一请求id。

服务端返回参数数据结构:

1、返回值

2、状态code

3、requestID,标识唯一请求id。

requestID作用:在多线程请求中,每一个线程的唯一标识。

四、序列化和反序列化

RPC选择序列化方法时需要考虑的点:

1、通用性,比如是否能支持Map等复杂的数据结构;

2、性能,包括时间复杂度和空间复杂度,由于RPC框架将会被公司几乎所有服务使用,如果序列化上能节约一点时间,对整个公司的收益都将非常可观,同理如果序列化上能节约一点内存,网络带宽也能省下不少;

3、可扩展性,对互联网公司而言,业务变化快,如果序列化协议具有良好的可扩展性,支持自动增加新的业务字段,删除老的字段,而不影响老的服务,这将大大提供系统的健壮性。

五、网络通信

一般RPC框架都要支持BIO,NIO两种IO通信模式。

一般都基于netty实现RPC的IO通信框架。

六、发布服务

使用zookeeper实现服务自动注册与发现功能。

posted @ 2021-07-23 17:45  疯狂打码  阅读(2073)  评论(0编辑  收藏  举报