flyingghost
2017-06-23 12:31:36 +08:00
只问数据解析,说明对你的定位不是系统架构师,充其量是个客户端开发或者架构。从客户端角度回答的尽可能视角宏观条理清晰并在他感兴趣的点能展开一些细节,就很好了。给个参考:
数据解析这一块主要考虑几个问题:
1,最关键的就是数据传输协议。协议定义是根据场景、需求等多方面因素而选择的。常见的有 json、xml 等文本格式,也有 Thrift、protobuf 等二进制格式,比较少见的场景也有 java 序列化、php 序列化等语言绑定的格式。也可以自定义格式。
2,应用层协议。这个和业务逻辑相关,主要是注意数据版本、数据结构、字段类型等。
3,传输容错机制。可能需要重传机制、确认机制、容错机制等。一般应用用不到。
4,解析器输入,一般是整体输入(比如 json ),有可能需要做到流式输入(比如自定义协议),
5,输出同理,有些业务场景可能需要流式输出或者分段输出。根据业务场景决定。
其实说实话,感觉面试官提这个问题本身就水平一般,这是一个很局促很片面既不好扩展广度又不好扩展深度的问题。