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

你可能感兴趣的:(RPC基本原理)