本文概述
- 时间
- 状态
- 流表对偶
- 时间窗
文章图片
时间这是必不可少的,也是最令人困惑的概念。在流处理中,大多数操作都依赖时间。因此,对于这种流应用程序,通常的时间观念是典型的任务。
Kafka Stream处理涉及以下时间概念:
- 事件时间:事件发生的时间以及最初创建记录的时间。因此,事件时间在流数据的处理期间很重要。
- 日志追加时间:事件到达的时间,以便代理存储。
- 处理时间:流处理应用程序接收事件以应用某些操作的时间。时间可以是毫秒,天或小时。在这里,根据每个流处理应用程序恰巧何时读取事件,将不同的时间戳分配给同一事件。同样,同一应用程序中两个线程的时间戳可能不同。因此,处理时间非常不可靠,并且最好避免。
状态是:
- 内部或本地状态:只能由特定的流处理应用程序的实例访问的状态。内部状态由应用程序内的嵌入式内存数据库管理和维护。尽管本地状态非常快,但是内存大小有限。
- 外部状态:这是在外部数据存储区(例如NoSQL数据库)中维护的状态。与内部状态不同,它提供了几乎无限的内存大小。同样,可以从不同的应用程序或它们的实例中访问它。但是,它带来了额外的延迟和复杂性,这使得某些应用程序可以避免。
时间窗【kafka流处理的关键概念】时间窗口一词是指将总时间分成几部分。因此,在流上有一些操作取决于时间窗口。这样的操作称为窗口操作。例如,对在两个流上执行的加入操作进行窗口化。尽管人们很少在乎其操作所需的窗口类型。
推荐阅读
- kafka中的消息压缩
- kafka流处理
- kafka实时例子
- kafka创建twitter生产者(producer)
- kafka连接(connect)
- kafka监控和管理
- 在java中创建kafka消费者(consumer)
- kafka生产者回调(callback)
- 在java中创建kafka生产者(producer)