0

我使用分布式日志 AsyncLogReader 从分布式日志流中读取记录。对于流中的每条日志记录,我发现有两个与之关联的序列号,一个是事务 ID,一个是序列 ID。我应该使用哪一个来跟踪读取位置?

4

1 回答 1

0

基于邮件列表中一位分布式日志作者的回答:

简而言之,事务 id 是应用程序提供的序列号。它必须是非递减的。用户通常使用时间戳或偏移量(到目前为止写入的字节数)作为事务 id,以便他们可以使用事务 id 按时间或偏移量来回退。

序列号是系统生成的序列号。它表示流中日志记录的全局顺序。如果你熟悉 Raft https://raft.github.io/raft.pdf,它与 Raft 中的 log *index * 相同。序列 ID 有两个典型的用例。您可以使用序列 ID 来识别任意两条记录之间的记录数。您可以使用序列 ID 对交付序列进行任何完整性检查。

API页面http://distributedlog.io/api/core.html#sequence-numbers也有说明

于 2016-09-10T22:07:26.060 回答