就remoting协议而言,用得比较多的是hessian与phprpc,但phprpc的转化效率比hessian高很多。以下链接是牛人对此两者的序列化/反序列化效率作出的比较:
http://www.iteye.com/topic/333720
我因为开发的需要,对两者能支持的数据类型也进行了一些测试和比较,总结如下:
hessian
1.不支持集合内含有char数组;
2.除1外,完美支持各种集合、元素类型的解析转换;
phprpc
1.不支持集合内value为string类型的值,需由客户自己转换,代码如:new String((byte[])test.getMap().get("1"),"utf-8")
2.集合内除byte[]外,不支持其它数组,如int[]、float[]、char[]等
乍一看觉得用hessian就够了,虽然hessian对集合内的char数组不支持转换,但是由于在实际运用中使用机率较低。但是眼看着效率高hessian N倍的phprpc不用怪蛋痛,于是着手研究代码,企图从源码解决这个不支持集合内value为string类型值的问题。
其实问题原因在于PHPRPC在反序列化(unserialize)过程,无法正确识别集合中子元素的字符串类型。而PHPRPC中,负责序列化与反序列化过程的类为PHPSerializer.java。所以定位好问题后就不难解决了。此处省略N千字,其实也就是添加一行代码的问题,却耗尽了一整个下午的精力。以下是编译好了的spring2.5需要用到phprpc的三个jar 文件,分别是:phprpc_client.jar phprpc_spring.jar phprpc.jar。
下载便能用。
分享到:
相关推荐
Hadoop rpc源码是从Hadoop分离出的ipc,去掉了认证部分,附录使用文档.使用前请add lib包commons-logging-*.*.*.jar(我用的是1.0.4)和log4j-*.*.*.jar(我的1.2.13) 相关blog post: ...
rpc远程过程调用的手写简单源码 学习rpc通信的可以下载下来看看 很有帮助 包括客户端和服务端的网络调用 通信 序列化....等等
PHP+JAVA联合开发最好的利器,速度很快,经过测试
Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 tars协议采用接口描述语言(Interface description ...
PHPRPC for Delphi 对容器类型的支持 PHPRPC for Delphi 对自定义类型的支持 另外,PHPRPC 还提供了 Lazarus(Free Pascal)版本,Lazarus 与 Delphi 很像,你可以认为它是一个开源版本的 Delphi。只不过现在的 ...
phprpc for .net 源代码都有,可修改
这是一个PHPrpc客户端文件
PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用...
phprpc 的delphi调用 一般常用的调用方法 htdocs http://127.0.0.1/ 为WEB根目录 PHPRPC演示 php版本调用 http://127.0.0.1/demo-phpclient.php 调用demo-phpserver.php发布的HelloWorld()方法 demo1 ...
入门级RPC框架源码学习,里面有我学习过程中的相关流程图,对源码学习很有帮助:
高性能RPC框架 nfs-rpc源码示例
NULL 博文链接:https://zqhxuyuan.iteye.com/blog/1879292
phprpc中文文档,网页版中文文档。谁用谁知道。
3.0 XML-RPC
python利用phprpc进行远程调用
phprpc for java 服务器实例
phprpc的客户端jar包,没有其他要说的了
很强大的与服务器安全通信的软件。详细参考www.phprpc.net
PHPRPC .Net服务端+客户端,里面涉及到个各类的定义。自己发布IIS,服务端和客户端测试成功。