首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >传递事件流

传递事件流

作者头像
JavaEdge
发布2022-10-04 08:38:19
5220
发布2022-10-04 08:38:19
举报
文章被收录于专栏:JavaEdgeJavaEdge

批处理领域,作业的输入和输出是文件(也许在分布式文件系统)。流处理领域中的等价物是啥呢?

当输入是一个文件(一个字节序列),第一个处理步骤通常是将其解析为一系列记录。在流处理的上下文中,记录通常被叫做事件(event) ,本质是一样的:一个小的、自包含的、不可变的对象,包含某时间点发生的某事的细节。一个事件通常包含一个来自日历时钟的时间戳,以指明事件发生的时间。

发生的事件可能是:

  • 用户行动,如查看页面或进行购买
  • 也可能源于机器,如对温度传感器或 CPU 利用率的周期性测量 “使用 Unix 工具的批处理” 的示例中,Web 服务器日志的每一行都是个事件。

事件可能被编码为文本字符串或JSON或二进制编码。这允许你存储一个事件,如将其追加到一个文件,将其插入关系表或写入文档DB。还允许你通过网络将事件发送到另一个节点处理。

批处理中,文件被写入一次,然后可能被多个作业读取。流处理中,一个事件:

  • 由producer(也称publisher、sender)生成一次
  • 可能由多个consumer( subscribers、recipients)处理。文件系统中,文件名标识一组相关记录;流式系统中,相关的事件通常被聚合为一个主题(topic)或流(stream)。

文件或数据库就足以连接Pro和Con:Pro将其生成的每个事件写入数据存储,且每个Con定期轮询数据存储,检查自上次运行以来新出现的事件。这正是批处理每天结束时处理当天数据时所做之事。

但当想进行低延迟连续处理时,若数据存储不是为这种用途专门设计,则轮询开销很大。轮询越频繁,能返回新事件的请求比例就越低,额外开销越高。最好能在新事件出现时直接通知Con。

数据库在传统上对这种通知机制支持的并不好,关系型数据库有触发器(trigger),可对变化(如插入表中的一行)反应,但功能有限,且在数据库设计中有些后顾之忧。已开发了专门的工具来提供事件通知。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档