PRPC2.0.0设计文档
1,相关概念
整体理解视角:模拟快递运输,将整个过程比喻成包裹运输,包括,包裹的登记,包裹的包装,以及调度运输,以及运输到快递接收人,接收人收到包裹后,通过调度站,发送给工作站,工作站找到指定的方法后,执行并获得结果后,登记返回结果到调度站,调度站组织运输发送到运输站,发送给原发送方,原发送方运输站获得响应后,返回给调度站,调度站,根据登记信息,选择是通知原发送人,还是通知其他人(回调函数的作用)
1.1,请求端
登记站:什么人(那个线程)登记了那个东西(方法定义信息),以及选择的套餐模式(调用方式)。登记站收到回件后,根据登记人的信息找到他,并把东西交给他。
调度站:查看接收人是否有填写,检查调用方式,打包,分发包裹到不同的调度中心(目前考虑用队列,同时考虑用通道这个概念,但不太理解),调度中心通过自己的调度模式,在合适的时候找来快递员发送包裹。调度站收到回件后,拆包,将回件返回给登记站。
运输站:提供运输服务,确保包裹快速安全不损坏的到达,如果评价一个快递公司(快速(网络延迟低,确保通信),安全(确保中途包裹不会被调包,或则窃取等),完整(确保包裹内的东西和邮寄出去的时候一模一样))。当接收到回件后,确认回件莫问题后,返回给调度站。
1.2,服务端
运输站:开设一个联络中心,等待快递员送货过来,检查包裹满足快递公司的基本要求后(如果不符合要求,则需要考虑一些基本的保障机制),转发给调度中心。当收到回件后,又原路返回到到指定的发送方。
调度站:接收到包裹信息后,拆开包裹,确认什么时候,需要带什么材料(方法执行的环境准备)才能见到这个人。等待对方签收完过后,再打包回件,分发到调度中心,调度中心确认响应模式后,在合适的时候发送到运输站。
工作站:调度中心的人来找到工作站的人,提交了一些东西(参数和环境信息),要给你某个人(指定方法),工作站提交材料给指定的人,等待他签收后(执行完),到调度站登记那个人的结果(异步的方式)。工作站直接将结果返回给调度中心的来人(同步)。
2,整体流程
3,模块设计
3.1,本地
1,登记站
关键词:本地方法,调用方式,回调执行。
描述:
请求:登记本地方法的定义信息,获取调用时的参数信息,以及获取其相关的调用方式的配置项(同步/异步,定时/周期/延时,回调函数)。
响应:根据响应内容,找到登记的方法,并将结果返回给本地执行方法,或者将结果作为参数,传入指定的回调函数。
基本流程:
2,调度站
关键词:调度分发,调度中心,调度仓库(队列)
描述:
请求:检查调度信息,根据不同调用方式分发到不同的调度中心仓库中,不同的调度中心将从仓库中取出调度信息,并发送。
响应:从接收队列中获取结果,返回给登记站。
基本流程:
3,运输站
关键词:通信
描述:定义通信协议,保证消息正确可靠安全。
基本流程:
3.2,远程
1,运输站
关键词:通信
描述:定义通信协议,保证消息正确可靠安全。
基本流程:
2,调度站
关键词:检查,解包
描述:
请求:解包,检查调用的方法是否存在,如果存在,则将方法和参数信息,交给工作站执行
响应:得到结果,装包,返回给运输站发送。
3,工作站
关键词:执行准备,执行,结果转换
描述:
请求:参数类型转换,方法参数检查,方法参数赋值,执行方法。
响应:异常结果处理,事务控制,结果类型转换
基本流程:
4,代码实现
关键技术点的实现
1,本地方法参数获取
2,调度中心以及调度仓库的工作流程
3,通信模块的高效率设计(少占资源,少耗时,稳定,完全)
4,远程方法执行支持的特性(事务,异常处理)
网友评论