One minute
Pulsar Compact
Topic-Compaction 的设计比较特殊, 他不是简单的删除历史消息的操作, 相反,他却是一个移动 topic Ledger的操作, 通过将每个key的最新的消息移动到新的leader实现.
整个执行分两步执行:
- pre: 获取到最老的消息最为迭代key的起点, 最新的消息作为迭代key的终点
- first round: 遍历两个key范围内的消息, 获取每个key最新的 messageId
- second round: 遍历两个key范围内的消息, 过滤出是 key最新的 message, 添加到新的leader.
显然, 从设计上来讲, compact ledger 的缺点还是很明显的
- topic-compaction 期间不能够有新的消息
- key的重复率需要比较高, 否则没有效果
目前比较合适的场景也就是 股票场景,只关心每个key最新的消息
34 Words
2019-03-30 23:33 +0800