【发布时间】:2018-11-13 17:24:56
【问题描述】:
我目前正在设计一种二进制格式来记录一系列 protobuf 编码的消息。我需要能够阅读最新到最旧(从流末尾)以及最旧到最新的消息,所以我相信我不能使用长度前缀as the docs suggest 来分隔消息,除非我想通过搜索从头到尾的整个日志。
使用 ASCII 控制字符分隔符(即 28 个文件分隔符、29 个组分隔符、30 个记录分隔符、31 个单元分隔符)来分隔 protobuf 消息是否安全?
或者,除了长度前缀之外还使用长度后缀之类的东西来创建消息三明治 (length message length) 以允许向前和向后阅读消息,这是闻所未闻的吗?
这个问题和this one类似,但是后者没有提到反向读取消息的用例,也没有专门处理protobuf消息。
【问题讨论】:
-
不管怎样,长度后缀(除了前缀)的想法对我来说听起来不错。
标签: protocol-buffers delimiter binary-data