mprpc框架项目总结

首先,我们在使用框架的时候,框架体现出3个模块。
1个是RPC服务的调用方(mprpcchannel)。
1个是RPC服务的提供方(mprpcprovider)。
1个是ZooKeeper,作为服务配置中心。
提供服务的节点先启动,和ZK创建会话(session),然后在里面维护了一个RPC方法的map表,想发布服务会调用notifyservice函数,把发布服务的对象和RPC方法写到map表,然后通过ZKclient把这些服务和方法都注册在ZK上,放在相应的znode节点上,可以看一下图右边的根目录形式的写法。
然后RPC服务的提供者就会去启动网络服务,采用的是muduo库,设置了4个线程,自动分配1个I/O线程和3个work线程,muduo绑定回调,(绑定了OnConnection和OnMessage),调用了start和loop方法,RPC服务节点就开始启动了。
然后RPC服务的调用方就发起了调用,首先通过stub代理对象调用RPC方法,最终都是调用channel的CallMethod方法,统一进行参数的打包,数据的序列化,获取ZK的服务的IP地址和端口号,发起RPC调用。
在ZK查到调用服务的IP地址和端口号以后,用header组装数据。header_size表示rpcheader的长度。
rpcheader包括servicename,methodname,和args的长度(防止粘包)。
建立RPC服务方建立连接后
然后发起RPC调用请求。
然后就是mprpcprovider的OnMessag做的事情。

本文介绍mprpc框架的三个核心模块:RPC服务调用方、RPC服务提供方及ZooKeeper服务配置中心。详细阐述了服务注册、启动流程、RPC调用过程及编译部署步骤。

7605

被折叠的 条评论
为什么被折叠?



