RPC:远程进程调用:
几种比较典型的RPC实现和调用框架(注意:不是开发框架):
1:RMI:利用Java.rmi包实现的,基于Java远程方法协议和原生Java序列化实现。
2:hession:一共轻量级的remoting onhttp工具,使用简单的方法提供了RMI功能,基于http协议。
3:thrift:是一种可伸缩的跨语言服务的框架。
RPC框架实现原理:
在框架中主要有三个角色,provider,consumer,registry。
RPC使用到的技术:
1:动态代理:生成client stub和server stub需要用到Java动态代理技术。可以使用JDK原生的动态代理机制。也可以使用开源的字节码工具,比如cglib,javassist. 。
2:序列化:为了能在网络上传输和接收Java对象,需要进行序列化和反序列化操作。序列化就是将Java对象转换成byte[]的过程,也就是编码的过程。反序列化就是将byte[]转换成Java对象的过程,也就是解码。Java原生的序列化机制可以用,但是效率低,推荐使用开源的成熟的序列化技术,比如protobuf、Thrift、hessian 。
3:nio:很多RPC框架都直接用netty这个框架。
4:服务注册中心:Redis,ZK,consul,etcd。
本文链接:https://my.lmcjl.com/post/5855.html
展开阅读全文
4 评论