自定义RPC框架思路整理

来源:互联网 发布:淘宝美工岗位 编辑:程序博客网 时间:2024/05/22 07:48

RPC框架数据流程

RPC框架服务端启动原理

要使用我们自定义的RPC框架,服务端必须要做下面两件事:

  • 在业务接口的实现类上面添加@RPCService注解
  • 在Spring框架的applicationContext.xml文件中配置框架提供的bean

    <bean id="rpcServer" class="cn.itcast.rpc.server.RpcServer">    <constructor-arg name="serverAddress" value="${server.address}"/>    <constructor-arg name="serviceRegistry" ref="serviceRegistry"/></bean>

一旦启动Spring框架,Spring框架就会使用我们指定的构造函数来构造指定的类的实例。这个类实现了org.springframework.context.ApplicationContextAware接口。因此Spring会通过setApplicationContext方法传递进Context对象。然后通过Context对象就可以获得所有添加了@RPCService注解的类的实例。最后启动netty,即可开启rpc服务器程序。

RPC框架服务端功能列表

  • 读取配置文件,获得ZooKeeper集群地址,向ZooKeeper注册自己的地址
  • 获取所有@RpcService注释的类对象
  • 监听socket端口,解析客户端的请求,调用客户端指定的方法并返回结果

RPC框架代码运行流程

客户端调用服务器原理

用户代码通过框架取得Service实现类(动态代理)。动态代理类截获客户端具体的调用过程,然后向服务端发送请求。最后获得结果。

0 0
原创粉丝点击