模式演化要保证:
- 向后兼容 较新的代码可以读取旧代码编写的数据
- 向前兼容 较旧的代码可以读取较新代码编写的数据
数据编码格式
语言特定格式
- Python pickle
- Java java.io.Serializable
- Ruby Marshal
JSON、XML与二进制变体
二进制变体
- Message Pack:二进制的 JSON
Thrift 与 Protocol Buffers
Avro
数据流模式
基于数据库的数据流
不同是写写入不同的值
归档存储
基于服务的数据流:REST 和 RPC
RPC 的问题
给人一种本地调用的错觉,却需要面临网络的不确定性:延迟和超时。