24

Kafka 实时 API 探秘

 3 years ago
source link: https://www.infoq.cn/article/7TkT70FWAswBGXTgdwAC
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文要点

  • 在构建应用程序和系统时,我们一直面临的一个挑战是如何有效地在它们之间交换信息,同时保持接口修改的灵活性,而不会对其他地方产生不恰当的影响。

  • 事件提供了一种“金发姑娘式”的方法,实时API可以作为应用程序的基础,既灵活又高性能,既松耦合又高效。在你所工作的业务领域,你可能会想到很多事件示例。它们可以是人类之间产生的互动,也可以是机器之间产生的交互。

  • Apache Kafka提供了一个可伸缩的事件流平台,你可以用它来构建强大的基于事件的应用程序。Kafka通过Kafka Streams API提供流式处理能力。

  • ksqlDB是一个专门为流式处理应用程序而构建的事件流数据库。它提供了一个基于SQL的API来查询和处理Kafka中的数据。

  • ksqlDB的特性包括过滤、转换和连接来自流和表的数据,通过聚合事件创建物化视图,等等。

在构建应用程序和系统时,我们一直面临的一个挑战是如何有效地在它们之间交换信息,同时保持接口修改的灵活性,而不会对其他地方产生不恰当的影响。接口越是具体和简单化,在做出变更时就越有可能需要进行彻底的重写。反过来也是成立的,通用的集成模式可以适用,并得到广泛支持,但这是以性能作为代价。

事件提供了一种“ 金发姑娘式 ”的方法,实时 API 可以作为应用程序的基础,既灵活又高性能,既松耦合又高效。

事件可以被视为其他大多数数据结构的构建块。一般来说,它们记录某件事情发生的事实和发生的时间点。一个事件可以捕获不同级别的信息:从一个简单的通知到一个可以描述所发生事情的完整状态的事件。

我们可以通过聚合事件来创建状态。除了作为状态的基础,事件还可以用于在发生事件时异步触发其他地方的动作——这是事件驱动架构的基础。通过这种方式,我们可以构建事件消费者来满足我们的需求——包括无状态的和有状态的。事件生产者可以选择维护状态,但没有必要这样做,因为事件消费者可以从接收到的事件中重新构建状态。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK