Kafka流处理内幕详解

1.概述

流处理是一种用来处理无穷数据集的数据处理引擎。通常无穷数据集具有以下几个特点:

  • 无穷数据:持续产生的数据,它们通常会被称为流数据。例如:银行信用卡交易订单、股票交易就、游戏角色移动产生的数据等;
  • 低延时:流数据通常都是实时处理,数据实时产生,然后流处理引擎实时处理流数据,因此延时很短。

2.内容

2.1 什么是流处理

对于存储在Kafka系统内的数据,Kafka系统提供了一种进行处理和分析的功能——流处理,它具有以下特性。

1. 是一个轻量级的类库

Kafka流处理提供了一个非常轻量级的Java类库,它能够轻而易举地集成到任意的Java应用程序中,打包和部署的方式也没有特殊的要求。

2. 拥有良好的可扩展性和容错性

Kafka流处理除了依赖Kafka系统外,对外界不存在任何依赖。在系统达到瓶颈时,Kafka流处理可以使用Kafka系统的分区机制,轻松地实现水平扩展来解决瓶颈问题。同时,通过记录状态(窗口操作、聚合操作等)来实现高效的操作。

3. 拥有丰富的应用接口

Kafka流处理对底层的应用接口进行了封装,同时,对拓扑结构进行了高度抽象。

4. 具有灵活的弹性伸缩功能

在只读取数据一次的情况下,流处理应用程序无需用户介入,也能自动修改参数,实现应用程序的自动扩容和减容。

2.2 什么是流式计算

通常情况下,流式计算与批处理计算会放在一起做比较分析。
(1)在流式计算模型中,数据的输入是持续不断的,这意味着永远不知道数据的上限是多少,因此,计算产生的结果也是持续输出的,流程如下图所示。流式计算一般对实时性要求较高,为了提升计算效率,通常会采用增量计算来替代全量计算。

(2)在批处理计算模型中,通常数据上限是可知的,一般会先定义计算逻辑,然后进行全量计算,并将计算结果一次性输出。流程如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值