前言
Dubbo框架支持的通信协议有很多种,本节着重介绍hessian协议。
正文
描述
Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Sevlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。Dubbo的Hessian协议可以与原生的Hessian服务互操作,即提供方和消费方可以分别为Dubbo的Hessian服务或原生的Hessian服务。适用于入出参数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
特性
连接:多个短连接,因为底层是基于Http进行通讯;
传输:HTTP协议,同步传输方式;
序列化:Hessian二进制序列化;
依赖
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>4.0.7</version>
</dependency>
约束
参数及返回值需实现Serializable接口;
参数及返回值不能自定义实现 List, Map, Number, Date, Calendar 等接口,只能用 JDK 自带的实现,因为 hessian 会做特殊处理,自定义实现类中的属性值都会丢失。
配置
协议
示例:
<dubbo:protocol name="hessian" port="8080" server="jetty" />