常见的远程调用

一、Java 官方RMI

  1、把接口类和实现类分开,部署在各自的Java虚拟机中。

  2、用网络来进行调用。

     需要使用Remote类、Naming、LocateRegistry类的方法。

      需要每次固定的选择服务器来调用对象方法。

 

二、用HTTP调用

     服务的每个方法和HTTP路径绑定。

     客户端用HTTP请求来调用服务。

     可以提供一个列表给客户端随机选择服务。

 

  常见的是:SpringCloud框架。

 

三、Dubbo框架

  (一)特点

   1、 Dubbo和Java官方RMI类似,也通过抽象接口类来调用远方的实现类。

   2、Dubbo有注册中心来提供服务列表。

 

  (二)Dubbo的难点:

     1、怎么把接口类的方法调用转换成网络数据?

        需要把方法名、参数列表通过网络传输,发给服务提供方。

 

     2、怎么把对象转成字节序列?

        Java官方有Object序列化输入输出流。

        或者自定义把每个属性值转成二进制序列。

 

     3、怎么动态的在客户端内部实现一个接口?

     接口实现类中每个方法内部都要完成下列功能:

        把方法调用的参数列表转成二进制序列。

        把二进制序列用网络发给服务提供方。

        接收服务提供方回复的结果数据。

        把结果数据转成Java对象。

        把对象返回给方法调用者。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值