Kafka Stream概念及初识高层架构图
Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature,它提供了对存储于Kafka内的数据进行流式处理和分析的功能。简而言之,Kafka Stream就是一个用来做流计算的类库,与Storm、Spark Streaming、Flink的作用类似,但要轻量得多。
Kafka Stream的基本概念:
Kafka Stream是处理分析存储在Kafka数据的客户端程序库(lib)
由于Kafka Streams是Kafka的一个lib,所以实现的程序不依赖单独的环境
Kafka Stream通过state store可以实现高效的状态操作
支持原语Processor和高层抽象DSL
Kafka Stream的高层架构图:
image.png
Partition的数据会分发到不同的Task上,Task主要是用来做流式的并行处理
每个Task都会有自己的state store去记录状态
每个Thread里会有多个Task
Kafka Stream 核心概念
Kafka Stream关键词:
流和流处理器:流指的是数据流,流处理器指的是数据流到某个节点时对其进行处理的单元
流处理拓扑:一个拓扑图,该拓扑图展示了数据流的走向,以及流处理器的节点位置
源处理器及Sink处理器:源处理器指的是数据的源头,即第一个处理器,Sink处理器则反之,是最终产出结果的一个处理器
如下图所示:
image.png
Kafka Stream使用演示
下图是Kafka Stream完整的高层架构图:
image.png
从上图中可以看到,Consumer对一组Partition进行消费