作者Jay Kreps是前LinkedIn的Principle Staff Engineer,现Confluent CEO,在大数据处理领域深耕多年。我感觉这本书还是很好的,虽然只有40多页,但是我觉得内容挺多的,没凑字数的废话。
整理下我个人的takeaway:
对日志的认知
"log"这个词吃了命名的亏,以为人们习惯把代码里调错的各种print当成log,所以没把它当回事。但事实上log的核心是数据,不应该是给人看的,而是给机器读的。log记录的是什么时候发生了什么——而这恰恰就是分布式系统最核心要处理的内容。
log在分布式系统中可以用于两种场景:
- 一种是state-machine replica,就是类似于pub/sub,写入一个顺序
- 另一种是primary backup,利用log做状态备份
日志服务应该作为一个独立的服务,并以此可以成为以下系统的基础:
- 数据整合,比如支持各种各样团队不同需求的数据可视化
- 实时数据处理,比如批处理、流处理
- 分布式系统的整体设计,这本书里介绍了如何利用log去对分布式系统架构进行解耦