自定义RPC框架思路整理

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值