前言
序列化: 将数据结构或者对象转换为二进制串。
**反序列化:**将序列化生成的二进制串转换为数据结构或者对象。
dubbo支持的通信协议
1.dubbo协议
默认为dubbo协议,单一长连接,进行的是NIO异步通信,基于hessian作为序列化协议。
使用场景:传输量小(每次请求在100kb以内),但是并发很高。
长连接:建立连接后可以持续发送请求,无需再建立连接。
短链接:每次要发送请求之前,需要重新建立一次连接。
2.rmi协议
走Java二进制序列化,多个短链接。是和消费者和提供者数量差不多的情况,适用于文件传输。
3.hessian协议
基于hessian序列化,多个短链接,适用于提供者数量 > 消费者数量,适用于文件传输。
4.http协议
json序列化
5.webservice
SOAP文本序列化
dubbo支持的序列化协议
hessian、Java二进制序列化、json、SOAP文本序列化。模式使用hessian序列化协议。
hessian的数据结构
hessian的对象序列化有8种原始类型、3种递归类型、1种特殊类型
原始类型:
- 原始二进制数据
- boolean
- 64-bit date(64 位毫秒值的日期)
- 64-bit double
- 32-bit int
- 64-bit long
- null
- UTF-8 编码的 string
递归类型:
- list for lists and arrays
- map for maps and dictionaries
- object for objects
特殊类型:
- ref:用来表示对共享对象的引用。