RPC基本原理

  • RPC基本原理是客户端通过动态代理补全协议信息(类名、方法名、参数,requestId等),然后通过io(mina、netty实现)发送到服务端,服务端,服务端通过动态代理(或cglib等)和反射调用实现类。

  • 动态代理需实现InvocationHandler接口,实现类提供全局变量用于容纳被代理对象的原始实例对象,并在invoke方法中进行功能扩展,动态代理可用来实现事务;被代理对象的增强实例由

Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), 
new Class[]{classType}, handler) 

方法生成,需强制类型转换。

  • 序列号可优化数据传输,常见的实现包括Protostuff、Thrift等

  • zookeeper实现注册与发现,每注册一个服务节点,所有客户端将更新服务列表;

  • RPC详解参考 http://www.cnblogs.com/LBSer/p/4853234.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 是什么 RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地...
    jiangmo阅读 5,717评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,800评论 19 139
  • 摘自: https://my.oschina.net/hosee/blog/711632摘要: 本文主要说明RPC...
    holy_z阅读 4,878评论 0 7
  • 整体Retrofit内容如下: 1、Retrofit解析1之前哨站——理解RESTful 2、Retrofit解析...
    隔壁老李头阅读 8,511评论 2 10
  • 这是去年考试前写的一篇,这一周的作业又拖延了,最后用这篇稿子先来应付。这就是我拖延症最经典的体现。在任务刚开始时,...
    sarah在行动阅读 708评论 0 0