Thrift和HHessian
1、Thrift简介
1.Thrift是一种典型的CS(客户端/服务端)结构,客户端与服务端可以使用不同的语言开发。既然客户端和服务端能使用不同的语言开发,那么一定就要有一种之间语言来管理客户端和服务端的语言,这种语言就是IDL(Interface Description Language).
2.Thrift不支持无符号类型,因为很多语言不存在无符号类型,比如Java
3.集合中的元素可以是除了service之外的任何类型,包括exception
thrift容器类型:
(1)list:一系列由T类型的数据组成的有序列表,元素可以重复
(2)set:一系列由T类型的数据组成的无序列表,元素不可重复
(3)map:一个字典结构,key为K类型,value为V类型,相当于Java中的HashMap
4.thrift定义服务相当于Java中创建Interface一样,关键字service
1.1 Thrift优点
- 支持非常多的语言绑定
- thrift文件生成目标代码,简单易用
- 消息定义文件支持注释
- 数据结构与传输表现的分离,支持多种消息格式
- 包含完整的客户端/服务端堆栈,可快速实现RPC
- 支持同步和异步通信
2、hessian简介
hessian是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。
类似于WebService,不过不使用SOAP协议,而是用Binary RPC协议,相比webservice而言更简单、快捷。
它把协议报文封装到http封包中,通过HTTP信道传输。Hessian是通过servlet提供远程服务,完全使用动态代理来实现的,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。
2.1.优点:
(1)简单易用,面向接口,通过接口暴露服务,jar包只有200、300k,不需要配置防火墙
(2)效率高,复杂对象序列化速度仅次于RMI,简单对象序列化优于RMI,二进制传输
(3)多语言支持:wiki、Java、Flash/Flex、Python、C++、.NET C#、PHP、Ruby、Objective-C
(4)可与spring集成,配置简单,使用HessianServiceExporter提供bean服务
2.2.缺点:
(1)缺乏安全机制,传输没有加密处理
(2)异常机制不完善,总是报一些错误,错误原因也是千奇百怪,提示信息不足
(3)事务处理欠缺
(4)版本问题,spring 2.5.6对照3.1.3版,spring 3对照4.0及以上版本,需要使用spring MVC部分内容
浙公网安备 33010602011771号