美文网首页
RPC简单实现及原理分析

RPC简单实现及原理分析

作者: TheLights | 来源:发表于2018-03-16 11:11 被阅读19次

接口(客户端服务端通用)


image

服务端
接口实现类


image

处理客户端请求


image

客户端
远程调用方法


image

测试类


image

预期结果
HELLO
测试结果
HELLO
结果正常

原理分析
第一,我们看到了Proxy.newProxyInstance,很显然在进行动态代理。也即是说,在客户端调用SayHello方法时,我们先是通过动态代理返回一个代理的RpcService类型对象,这意味着当代理对象调用SayHello方法的时候,会自动调用invoke方法!
第二,我们看看invoke到底做了些什么?
它本质上就是进行Socket通信,那么它需要传递什么信息给到服务端呢?
我们知道客户端就是想调用服务端的某个类的某个方法,然后把这个方法的返回结果传输给客户端!
想一想,如何调用某个类的某个方法呢?
只要我们能确定这个类的全限定类名、确定方法名、确定方法的参数类型,给定方法需要的具体参数,通过反射就能实现。
客户端调用后得到的结果,我们序列化写入Socket流中,在服务端中反序列化得到对象即可。
第三,这里需要思考一个问题:在客户端我们只知道商品服务的API,并不知道这背后的API到底是如何实现的,所以我们需要有一个映射,就是商品服务的API到服务端的实现的一个映射关系,其实这就是所谓的服务的注册(我们这里使用接口名进行映射)

相关文章

  • RPC简单实现及原理分析

    接口(客户端服务端通用) 服务端接口实现类 处理客户端请求 客户端远程调用方法 测试类 预期结果HELLO测试结果...

  • RPC

    RPC原理及RPC实例分析 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

  • RPC简述及简单实现

    本文主要介绍RPC的原理并实现一个简单的例子。 RPC主要原理 什么是RPCRPC -- Remote Proce...

  • RPC原理及实现

    1 简介 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简...

  • RPC原理及实现

    RPC概述 RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的...

  • RPC原理及RPC实例分析

    摘自: https://my.oschina.net/hosee/blog/711632摘要: 本文主要说明RPC...

  • RPC框架的实现原理,及RPC架构组件详解

    微服务系列:RPC框架的实现原理,及RPC架构组件详解 RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常...

  • RPMsg:协议简介

    0. 起因 之前在RPC原理与FastRPC实现一文中介绍过RPC的原理,简而言之,RPC就是实现本地程序调用位于...

  • 基于Netty+动态代理+反射 实现简单的RPC调用

    前言 本文只是简单实现了一次RPC调用示例,以理解其调用原理。一些主流RPC框架的其他功能并没有实现。(如服务自动...

  • ChainMapper/ChainReducer实现原理及案例分

    ChainMapper/ChainReducer实现原理及案例分析 ChainMapper/ChainReduce...

网友评论

      本文标题:RPC简单实现及原理分析

      本文链接:https://www.haomeiwen.com/subject/rzylqftx.html