《深入理解Kafka与Pulsar:消息流平台的实践与剖析》送书活动

2023-01-03 20:08:55 浏览数 (1)

《深入理解 Kafka 与 Pulsar》

Apache Kafka(简称Kafka)是由LinkedIn公司开发的分布式消息流平台,于2011年开源。

Kafka是使用Scala和Java编写的,当下已成为最流行的分布式消息流平台之一。

Apache Pulsar(简称Pulsar)是雅虎开发的“下一代云原生分布式消息流平台”,于2016年开源,目前也在快速发展中。

Pulsar集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。

Kafka与Pulsar都是优秀的分布式消息流平台,它们都提供了以下基础功能:

(1)消息系统:Kafka与Pulsar都可以实现基于发布/订阅模式的消息系统。

这种消息驱动机制具有以下优点:

  • 系统解耦:生产者与消费者逻辑解耦,互不干预。如果需要对消息添加新的处理逻辑,则只需要添加新的消费者即可,非常方便。
  • 流量削峰:消息系统作为消息缓冲区,以低成本将上游服务(生产者)的流量洪峰缓存起来,下游服务(消费者)按照自身处理能力从消息队列中读取数据并进行处理,避免下游服务由于大量的请求流量而崩溃。
  • 数据冗余:消息系统将数据缓存起来,直到数据被处理,避免下游服务由于崩溃下线、网络阻塞等原因无法及时处理数据而导致数据丢失。

(2)存储系统:Kafka与Pulsar可以存储大量数据,并且客户端控制自己读取数据的位置,所以它们也可以作为存储系统,存储大量历史数据。

(3)实时流数据管道:Kafka与Pulsar可以构建实时流数据管道,流数据管道从MySQL、MongoDB等数据源加载数据到Kafka与Pulsar中,其他系统或应用就可以稳定地从Kafka与Pulsar中获取数据,而不需要再与MySQL等数据源对接。为此,Kafka提供了Kafka Connect模块,Pulsar提供了Pulsar IO模块,它们都可以构建实时流数据管道。

(4)流计算应用:流计算应用不断地从Kafka与Pulsar中获取流数据,并对数据进行处理,最后将处理结果输出到Kafka与Pulsar中(或其他系统)。流计算应用通常需要根据业务需求对流数据进行复杂的数据变换,如流数据聚合或者join等。

为此,Kafka提供了Kafka Streams模块,Pulsar提供了Pulsar Functions模块,它们都可以实现流计算应用。另外,Kafka与Pulsar也可以与流行的Spark、Flink等分布式计算引擎结合,构建实时流应用,实时处理大规模数据。

Kafka与Pulsar都追求以下特性

高吞吐、低延迟:它们都具有高吞吐量处理大规模消息流的能力,并且能够低延迟处理消息。这也是大多数消息流平台追求的目标。

持久化、一致性:Kafka与Pulsar都支持将消息持久化存储,并提供数据备份(副本)功能,保证数据安全及数据一致性,它们都是优秀的分布式存储系统。

高可扩展性(伸缩性):Kafka与Pulsar都是分布式系统,会将数据分片存储在一组机器组成的集群中,并支持对集群进行扩容,从而支持大规模的数据。

故障转移(容错):Kafka与Pulsar支持故障转移,即集群中某个节点因故障下线后,并不会影响集群的正常运行,这也是优秀的分布式系统的必备功能。

Kafka与Pulsar虽然提供的基础功能类似,但它们的设计、架构、实现并不相同,本书将深入分析Kafka与Pulsar如何实现一个分布式、高扩展、高吞吐、低延迟的消息流平台。另外,本书也会介绍Kafka与Pulsar中连接器、流计算引擎等功能的应用实践。

Kafka与Pulsar涉及的基础概念

将Kafka与Pulsar都视为一个简单的消息系统,消息流转流程如下图所示。

图中展示了消息系统中的4个基本概念。它们在Kafka与Pulsar中都存在,并且含义相同。

  • 消息 Message:Kafka与Pulsar中的数据实体。
  • 生产者 Producer:发布消息的应用。
  • 消费者 Consumer:订阅消息的应用。
  • 主题 Topic:Kafka与Pulsar将某一类消息划分到一个主题,主题是消息的逻辑分组,不同主题的消息互不干预。

...

本文介绍了Kafka与Pulsar的起源发展与系统特性,以及Kafka与Pulsar中最基本的核心概念。

如果还想学习更多,《深入理解Kafka与Pulsar:消息流平台的实践与剖析》这本书中会详细介绍这些概念的具体含义与作用,也会逐渐补充Kafka与Pulsar中其他的关键概念,如果读者对某个概念不太理解。

0 人点赞