自己实现RMI(一)基本原理

        RMI,即远程过程调用。在java中,利用RMI机制可以调用远程java虚拟机上面的对象,而且调用时跟调用本地对象一模一样。

        虽然java类库里面有现成的RMI可以用,但是效率很低,基本上很难满足实际需要。至少,在一些要求快速调用远程对象的情况下,库里面的RMI基本上就是摆设。

        参考RMI的基本原理,我自己实现了一套RMI方案。从原理上讲,实现过程是这样的:支持RMI的虚拟机上都运行着一个server线程,线程根据接收到的消息为其他虚拟机提供服务。当A虚拟机上对象a需要调用B虚拟机上的b对象时,对象a将调用参数序列化成字符串或者byte数组,然后通过A发送给虚拟机B,虚拟机B收到请求后反序列化得到参数,然后调用b相应的方法,最后将返回值序列化返回给虚拟机A上的对象a。

        这整个过程,有三个关键的技术要点:

1.对象的查找或者索引,以及回调方法。

2.对象的序列化与反序列化。

3.底层socket通信

额外的技术要点:

1.序列号后数据压缩与解压

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值