RPC原理和使用到的相关技术

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 评论

留下您的评论.