开发者社区> 问答> 正文

[@徐雷frank][¥20]RPC怎样实现动态代理

RPC怎样实现动态代理

展开
收起
1436137260189798 2018-10-30 23:44:00 2151 0
1 条回答
写回答
取消 提交回答
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

    我说的简单明了一些,方便去理解这个机制。
    1.代理,简单理解,就是一个中间人,称作proxy代理,当然这里是对象。起的作用就是转发调用请求。通过中间人完成某个工作。
    2.动态代理,dynamic proxy,简单理解,就是 可以动态创建的代理对象,可以在运行时创建代理。
    3.RPC,远程过程调用,主要是早期分布式通信的基本概念。现在各个主流语言都有RPC的实现。Java也有Netty这样的框架。

    本质是Java的RPC使用到了代理模式,更确切的说是动态代理模式更多。
    当然这里不一定非要使用JDK反射机制,也可以使用CGlib或者ASM、javaassist更底层的技术。
    但是本质上都是 要创建一个代理proxy对象=>客户端调用Proxy的方法=>经过网络=>服务器端的实际对象Object的方法。最后返回结果。
    其他编程语言,C、C++模式相同,但是因为不支持反射可能实现依赖更紧密,二Go、Node或者C#实现机制机制类型。有些类似。
    反射方式动态创建对象依赖于语言本身的特性。基本大同小异。

    2019-07-17 23:11:27
    赞同 1 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载