RPC怎样实现动态代理
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我说的简单明了一些,方便去理解这个机制。
1.代理,简单理解,就是一个中间人,称作proxy代理,当然这里是对象。起的作用就是转发调用请求。通过中间人完成某个工作。
2.动态代理,dynamic proxy,简单理解,就是 可以动态创建的代理对象,可以在运行时创建代理。
3.RPC,远程过程调用,主要是早期分布式通信的基本概念。现在各个主流语言都有RPC的实现。Java也有Netty这样的框架。
本质是Java的RPC使用到了代理模式,更确切的说是动态代理模式更多。
当然这里不一定非要使用JDK反射机制,也可以使用CGlib或者ASM、javaassist更底层的技术。
但是本质上都是 要创建一个代理proxy对象=>客户端调用Proxy的方法=>经过网络=>服务器端的实际对象Object的方法。最后返回结果。
其他编程语言,C、C++模式相同,但是因为不支持反射可能实现依赖更紧密,二Go、Node或者C#实现机制机制类型。有些类似。
反射方式动态创建对象依赖于语言本身的特性。基本大同小异。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)