Kafka 基础教程 — 流式处理相关概念

Kafka流式处理核心概念与设计模式

 作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题


代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等


联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等

释放21集全网最深ConcurrentHashMap的vip视频,复现每一行源码

1、流式处理概述

数据流(也被称为“事件流”或“流数据”)。首先,数据流是无边界数据 集的抽象表示。无边界意味着无限和持续增长。无边界数据集之所以是无限的,是因为随 着时间的推移,新的记录会不断加入进来。

这个简单的模型(事件流)可以表示很多业务活动,比如信用卡交易、股票交易、包裹 递送、流经交换机的网络事件、制造商设备传感器发出的事件、发送出去的邮件、游戏 里物体的移动,等等。这个清单是无穷无尽的,因为几乎每一件事情都可以被看成事件 的序列。除了没有边界外,事件流模型还有其他一些属性。

  • 事件流是有序的
    事件的发生总是有个先后顺序。以金融活动事件为例,先将钱存进账户后再花钱,这与 先花钱再还钱的次序是完全不一样的。后者会出现透支,而前者不会。这是事件流与数 据库表的不同点之一。数据库表里的记录是无序的,而 SQL 语法中的 order by 并不是 关系模型的组成部分,它是为了报表查询而添加的。
  • 不可变的数据记录
    事件一旦发生,就不能被改变。一个金融交易被取消,并不是说它就消失了,相反,这 需要往事件流里添加一个额外的事件,表示前一个交易的取消操作。顾客的一次退货并 不意味着之前的销售记录被删除,相反,退货行为被当成一个额外的事件记录下来。这 是数据流与数据表之间的另一个不同点——可以删除和修改数据表里的记录,但这些操 作只不过是发生在数据库里的事务,这些事务可以被看成事件流。假设你对数据库的二 进制日志(bin log)、预写式日志(WAL)和重做日志(redo log)的概念都很熟悉,那 么就会知道,如果往数据库表插入一条记录,然后将其删除,表里就不会再有这条记 录。但重做日志里包含了两个事务:插入事务和删除事务。
  • 事件流是可重播的
    这是事件流非常有价值的一个属性。用户可以很容易地找出那些不可重播的流(流经 套接字的 TCP 数据包就是不可重播的),但对于大多数业务来说,重播发生在几个月 前(甚至几年前)的原始事件流是一个很重要的需求。可能是为了尝试使用新的分析方 法纠正过去的错误,或是为了进行审计。这也就是为什么我们相信 Kafka 能够让现代业 务领域的流式处理大获成功——可以借助 Kafka 来捕捉和重播事件流。如果没有这项能 力,流式处理充其量只是数据科学实验室里的一个玩具而已。

流式处理是指实时地处 理一个或多个事件流。流式处理是一种编程范式,就像请求与响应范式和批处理范式那 样。下面将对这 3 种范式进行比较,以便更好地理解如何在软件架构中应用流式处理。

  • 请求与响应
    这是延迟最小的一种范式,响应时间处于亚毫秒到毫秒之间,而且响应时间一般非常稳 定。这种处理模式一般是阻塞的,应用程序向处理系统发出请求,然后等待响应。在数 据库领域,这种范式就是线上交易处理(OLTP)。销售点(POS)系统、信用卡处理系 统和基于时间的追踪系统一般都使用这种范式。
  • 批处理
    这种范式具有高延迟和高吞吐量的特点。处理系统按照设定的时间启动处理进程,比如 每天的下午两点开始启动,每小时启动一次等。它读取所有的输入数据(从上一次执行 之后的所有可用数据,或者从月初开始的所有数据等),输出结果,然后等待下一次启 动。处理时间从几分钟到几小时不等,并且用户从结果里读到的都是旧数据。在数据库 领域,它们就是数据仓库(DWH)或商业智能(BI)系统。它们每天加载巨大批次的 数据,并生成报表,用户在下一次加载数据之前看到的都是相同的报表。从规模上来 说,这种范式既高效又经济。但在近几年,为了能够更及时、高效地作出决策,业务要 求在更短的时间内能提供可用的数据,这就给那些为探索规模经济而开发却无法提供低 延迟报表的系统带来了巨大的压力。
  • 流式处理
    这种范式介于上述两者之间。大部分的业务不要求亚毫秒级的响应,不过也接受不了要 等到第二天才知道结果。大部分业务流程都是持续进行的,只要业务报告保持更新,业 务产品线能够持续响应,那么业务流程就可以进行下去,而无需等待特定的响应,也不 要求在几毫秒内得到响应。一些业务流程具有持续性和非阻塞的特点,比如针对可疑信 用卡交易的警告、网络警告、根据供应关系实时调整价格、跟踪包裹。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值