Kafka

Kafka Streams

2019-10-23  本文已影响0人  spraysss

流式数据处理的几个关键点重难点:

kafka Streams 是一个用于实时分析和处理在kafka中数据的客户端库
它支持:

kafka Streams自身的一些亮点:

流式处理拓扑

在拓扑中有两种特别的processor

Kafka Streams 提供了两种方式用于定义流式处理拓扑:

流式处理拓扑只是流式应用的逻辑抽象,在运行时,这个逻辑拓扑会被实例化,并且分发到应用内部用于并行处理。

Time

流处理的关键就是它的时间模型,比如window 操作就是基于时间边界的:
在流式处理中一般有如下与时间相关的概念:

举个例子理解以上时间的概览:
考虑如下场景,手机上的一款app将用户日志数据上报到服务端Kafka,然后app 公司的开发者开发了一个实时处理程序,实时的从kakfa中获取用户上报信息,统计dua。

我们分析一条日志在手机上产生,然后上报到kafka集群,最后由流式程序取出来用于统计这个过程,其中Event time为app 日志在手机上产生的时间,Ingestion time为数据上报到kafka的时间,流式程序取出这个日志数据并且进行处理的时间为Processing time

State

实现无状态流式应用比较简单,比如仅仅是从一个流中过滤数据然后发往下一个流
当需要对事件进行countavg,或者多个时间join时就需要维持状态了,一般流式程序有如下几种状态:

Duality of Streams and Tables

high-level Streams DSL中提供了对流和表的抽象,分别对应KStreamKTable

Windowing

在流上很多操作都是window操作,也就是在一个时间片上的操作 比如:

进行window操作时,我们需要确定如下条件:

Out-of-Order Handling

上一篇 下一篇

猜你喜欢

热点阅读