dubbo协议约束

来源:互联网 发布:java list 查询条件 编辑:程序博客网 时间:2024/06/03 11:55

dubbo:

Ø  参数及返回值需实现Serializable接口

Ø  参数及返回值不能自定义实现List, Map, Number, Date, Calendar等接口,只能用JDK自带的实现,因为hessian会做特殊处理,自定义实现类中的属性值都会丢失。

Ø  Hessian序列化,只传成员属性值和值的类型,不传方法或静态变量,兼容情况:(由吴亚军提供)


接口增加方法,对客户端无影响,如果该方法不是客户端需要的,客户端不需要重新部署;

输入参数和结果集中增加属性,对客户端无影响,如果客户端并不需要新属性,不用重新

部署;

输入参数和结果集属性名变化,对客户端序列化无影响,但是如果客户端不重新部署,不管输入还是输出,属性名变化的属性值是获取不到的。

总结:服务器端和客户端对领域对象并不需要完全一致,而是按照最大匹配原则。

rmi:

Ø  参数及返回值需实现Serializable接口

Ø  dubbo配置中的超时时间对rmi无效,需使用java启动参数设置:-Dsun.rmi.transport.tcp.responseTimeout=3000,参见下面的RMI配置。

hessian:

Ø  参数及返回值需实现Serializable接口

Ø  参数及返回值不能自定义实现List, Map, Number, Date, Calendar等接口,只能用JDK自带的实现,因为hessian会做特殊处理,自定义实现类中的属性值都会丢失。

http:

Ø  参数及返回值需符合Bean规范

webservice:

Ø  参数及返回值需实现Serializable接口

Ø  参数尽量使用基本类型和POJO。

thrift:

Ø  null值 (不能在协议中传递null值)

memcached:

redis:

原创粉丝点击