Follow me on GitHub

读书 | I heart Logs

豆瓣:I heart Logs

这是一本不到 60 页的小册子,它的作者 Jay Kreps 可谓大名鼎鼎,他是 Kafka、Samza、Voldemort 等多个开源项目的最初作者,目前是 Confluent 的联合创始人兼 CEO,所以不要因为页数少而轻视它。

这书实际由 Jay Kreps 的一系列博文整理而成,博文有中文版,当然了,本书出版于 2014 年,其中的很多观点在当时是非常超前的,但 4 年后的今天,很多内容已经早已为大家熟知。

回到书的内容,本书主要讲述以 日志 为中心的系统设计,这些系统包括数据集成、流式处理等等。

这里的日志并非 debug 所用的日志,而是类似数据库 预写式日志 的概念,作者将预写式日志从数据库 内部实现 中抽离出来,推而广之,作为一种实现分布式系统的通用手段:

  • 用于 pub-sub 模型中,可获得持久化、可重播的“消息队列”(Kafka);
  • 用于流式系统保存流的状态,可获得持久化、可重播的状态(Samza);

简单讲,作者将日志视为一种实现复制、一致性、持久化等特性的通用机制,分布式系统很多特性都可以用日志来实现。

本书优点是,作者背景强大,言语之间透露出多个开源项目背后设计理念;至于缺点,非要说一点的话就是内容太短了 :)