本书将向读者介绍两个优秀的分布式消息流平台:Kafka与Pulsar。Kafka使用Scala和Java编写,由LinkedIn公司开源,当下已成为最流行的分布式消息流平台之一。Kafka基于发布/订阅模式,具有高吞吐、可持久化、可水平扩展、支持流数据处理等特性。Pulsar是雅虎开源的“下一代云原生分布式消息流平台”,目前在快速发展中。Pulsar集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、跨地域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
写作目的
在了解Kafka与Pulsar的特性与设计后,笔者被Kafka和Pulsar优秀的架构设计所吸引。实现一个分布式消息流平台,必须考虑数据分区(分片)、数据同步、数据自动均衡、分布式协作等问题。而针对这些问题,Kafka与Pulsar提供了非常优秀的设计方案,非常值得我们深入学习,所以笔者深入分析了Kafka与Pulsar这两个消息流平台,并编写了本书。
本书结构
本书从Kafka与Pulsar的基础概念切入,通过大量实践示例向读者展示Kafka与Pulsar的使用方式,以帮助读者日常使用、管理Kafka与Pulsar。另外,本书通过提取Kafka与Pulsar的核心代码(本书会尽量避免堆积代码),并配以适量图文,对Kafka与Pulsar的源码及实现逻辑进行了详细说明,从而带领读者阅读源码,帮助读者理解Kafka与Pulsar的设计思路和实现原理,还可以帮助读者在学习或设计其他分布式系统、存储系统时对这些设计思路融会贯通、触类旁通。
勘误和支持
若读者在阅读本书的过程中有任何问题或者建议,可以关注笔者的公众号(binecy)与笔者交流。我们十分感谢并重视读者的反馈,会对读者提出的问题、建议进行梳理与反馈,并在本书后续版本中及时做出勘误与更新。
梁国斌