RPC中间件之Hessian

1 篇文章 0 订阅
   Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

由于项目上使用PHP与JAVA,其中一些业务场景需要保持两者相互调用。

Hessian支持多语言,还有另外一个选择Twitter开源项目Thrift,这个后面的文章会记录。

两者的区别请自行google.

采用Hessian很大一部分原因是Java项目集成该组件,使用起来也比较方便,直接下载PHPHessianClient就能搞定。Java Web集成 hessian请点击链接。

1、Java服务端

/**
 * 
 * 类描述:  远程服务方法调用
 * @author junhua.zhou
 *
 * @version
 */
public interface IDataService {

    public byte[] process(byte[] params) ;
    public String callProc(String params) ;
}
/**
 * 
 * 类描述:  远程服务方法调用Imple
 * @author junhua.zhou
 *
 * @version
 */
public class DataServiceImpl implements IDataService {
    public static final Log log = LogFactory.getLog(DataServiceImpl.class) ;

    @Override
    public byte[] process(byte[] params) {
        return null;
    }

    @Override
    public String callProc(String params) {
        System.out.println(params);
        return "";
    }
}

2、PHP客户端

①下载 HessianPHP_v2.0.3.zip

点击下载

<?php
   // test.php
    // 加载hessian client
    include(dirname(APP_PATH).'/lib/Common/Include/hessian/HessianClient.php');
    // Java rpc server
    $testurl = 'http://localhost:8080/zqdkjob/rmi';
    $proxy = new HessianClient($testurl);
    try{
        $data = array(
            'uid'=> '11' ,
            'type'=>'2'
        ) ;
        echo $proxy->callProc(json_encode($data));
    } catch (Exception $ex){
        // …handle error
        echo $ex->getMessage();
    }

3、验证

php test.php
Java 打印结果 {“uid”:”11”,”type”:”2”} 表示联通成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值