事件流处理方式介绍和所包含的类型

4747 612 2023-07-06

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

本文讲了事件流处理方式介绍和包含类型。

事件流处理(Event Stream Processing,ESP)是指以近实时的方式计算、分析流事件将事件与事件查询语句相匹配并通知监听器。与之相关还有一个概念叫做复杂事件处理,指监控并分析事件之间的关系包括时间关系、逻辑关系等。与传统事件驱动结构相比, 事件流处理和复杂事件处理是传统事件驱动的一个扩展,它们引入了新的技术理念,比如说许多事件复模式的检测,事件相关和抽象,事件继承,事件因果性、从属性、同步性、定时和事件驱动过程。在事件流处理模式下的系统,可以实时监测事件流,当特定事件发生时触发某些行动。可以认为事件流处理与数据库的管理类似,只是处理方式相反。在传统的数据库系统中,采用信息保持静态,在数据中执行查询的方式而在事件流处理系统中,采用的是查询保持静态,数据不断变化的方式。简单的说,事件流处理是把数据库反过来,语句是固定的,而数据流进流。

事件流处理(event stream processing)是一个软件设计的能力,支持实施事件驱动的架构。

经过二十多年的研究和开发,事件流处理(ESP)软件平台已不再局限于在小生境应用或实验中使用。它们已经成为许多业务环境中实时分析的基本工具。

image.png

其动机来自需要分析的流数据量激增,特别是:

  • 物联网传感器数据;

  • 来自用户交互的点击流;

  • 社交媒体事件,如tweets、Instagram posts、Facebook posts和Linked in updates;

  • 市场数据;

  • 气象数据;以及

  • 业务应用程序中事务的事件流。

早在20世纪90年代,学术界就开始构建开发人员可以用来构建和部署流分析应用程序(当时称为复杂事件处理(CEP))的通用ESP平台,但在2010年之前,只有少数商业产品可用。它们主要用于金融交易所的高速交易系统和政府机构的情报应用。

在过去的九年中,商业和开源ESP平台的数量已经从少数增长到40多个。本文总结了该软件的八个主要趋势。

无处不在

——几乎所有主要软件供应商都提供一个或多个ESP产品(见下面的列表)。供应商意识到流式数据只会越来越丰富,越来越多的业务应用程序需要能够实时或接近实时地处理这些数据。

物联网

——几年前,我们预测物联网将成为ESP的杀手级应用(实际上是杀手级应用,因为物联网是数百种不同的应用,而不是一种)。事实证明就是这样。大多数物联网应用程序处理传感器数据,传感器数据作为实时事件流生成。我们看到的所有物联网平台套件都包括一个ESP平台作为产品的一部分。大多数物联网平台供应商明智地选择利用其通用ESP产品,而不是仅仅为了嵌入物联网平台而编写新的ESP平台。

边缘处理

——许多物联网应用程序的默认架构是在边缘或边缘附近运行流分析,以接近事件源。物联网事件的来源包括传感器、仪表、数字控制系统(DCSs)、监控和数据访问(SCADA)系统以及连接到DCSs或SCADA系统的历史数据库。在某些情况下,ESP在网关、路由器、卡车、汽车或火车上运行,甚至在终端设备中运行。在边缘或靠近边缘的地方运行ESP有很多好的理由:对不断变化的条件做出快速响应的较低延迟;较少的网络开销;以及更高的可用性(由于网络关闭或云服务器关闭,您负担不起让工厂、车辆或其他机器无法运行)。这就产生了层次结构,其中初始流处理是在边缘上完成的,然后处理和抽象事件的子集被转发到云或数据中心,在云或数据中心中完成另一层流处理。

云ESP

——几乎所有ESP产品都可以在公共或云基础设施即服务(IaaS)上运行。越来越多的供应商,包括Amazon Web Services、Google、IBM、Microsoft、Salesforce、SQLstream等,为那些不想管理自己的云ESP服务的公司提供ESP即平台即服务(PaaS)。此外,几乎所有具有嵌入式ESP平台的物联网套件都是有效的ESP PaaS提供商。

并行处理

——过去六年上市的许多ESP平台可以称为分布式流计算平台(DSCP),因为它们将工作负载分散在多个服务器上。如果特定的应用程序允许数据并行操作,则传入的数据将被分片并分发给多个工作者,从而实现更高的吞吐量(每秒更多事件)。其他类型的ESP平台也可以设置为跨多个节点分发工作,但它们需要更多的编程来实现这一点。

高级分析

——许多供应商正在将机器学习(ML)或业务规则引擎集成到其ESP平台的过程中。ML库(如评分服务)可以嵌入到事件处理流中。早期的ESP平台通常仅限于用户定义的功能(例如,用Java或供应商专有的事件处理语言编写),而不支持现成的分析。

一、事件流

        当你点击一个按钮时,实际上不光点击了这个按钮,还点击了它的容器以及整个页面。这个点击产生了不止一个事件。而是一个事件流。

       事件流,是指当事件发生时,会在发生事件的元素节点与DOM树根节点之间按照特定的顺序进行传播。

        (1)网景(Netscape):采用事件捕获方式

        (2)微软(Microsoft):采用冒泡方式

        (3)W3C:采用中和方式(事件前期采用捕获方式:只捕获不处理,事件后期阶段采用冒泡)

1.1 事件冒泡

       IE 事件流被称为事件冒泡,事件被定义为从最具体的元素开始触发,然后向上传播至没有那么具体的元素 (文档)。比如有如下 HTML 页面:

<!DOCTYPE html>

<html>

    <head>

      <title>Event Bubbling Example</title>

    </head>

    <body>

      <div id="myDiv">Click Me</div>

    </body>

</html>

在点击页面中的 <div> 元素后,click 事件会以如下顺序发生:

  <div> == > <body> == > <html> ==> document

image.png

  所有现代浏览器都支持事件冒泡,只是在实现方式上会有一些变化。 IE5.5 及早期版本会跳过 <html> 元素(从 <body> 直接到document)。现代浏览器中的事件会一直冒泡到 window 对象。

1.2 事件捕获

        Netscape 团队提出了名为事件捕获的事件流。事件捕获的意思是最不具体的节点最先收到事件,而最具体的节点最后收到事件。如果前面的例子使用事件捕获,则点击 <div>元素会以下列顺序触发click事件:

  document ==> <thml> == > <body> == > <div>

image.png

  事件捕获是 Netscape 唯一的事件流模型,但事件捕获在所有现代浏览器上也都支持。实际上,所有浏览器都是从 window 对象开始捕获事件,而 DOM2 Events 规范规定的是从 document 开始。实际当中几乎不会使用事件捕获。建议使用事件冒泡,特殊情况下可以使用事件捕获。

 1.3 DOM 事件流

        DOM2 Events 规范规定事件流分为3个阶段:① 事件捕获 ② 到达目标 ③ 事件冒泡。事件捕获最先发生,为提前拦截事件提供了可能。然后,实际的目标元素接收到事件。最后一个阶段是事件冒泡,最迟要在这个阶段响应事件。仍以前面那个简单的 HTML 为例,点击 <div> 元素会以下图的顺序触发事件。

在 DOM 事件流中,实际的目标( <div> 元素)在捕获阶段不会接收到事件。 

事件捕获阶段: 从 document 到 <html> 再到 <body> 就结束了。

达到目标阶段: 这个阶段会在 <div>元素上触发事件。

image.png

事件冒泡阶段: 通常在事件处理时被认为是冒泡阶段的一部分。然后,冒泡阶段开始, 事件反向传播至文档。

  大多数支持 DOM 事件流的浏览器实现了一个小小的拓展。虽然 DOM2 Events 规范明确捕获阶段不命中事件目标,但现代浏览器都会在捕获阶段在事件目标上触发事件。最终结果是在事件目标上有两个机会来处理事件。

    所有现代浏览器都支持 DOM 事件流

上文就是小编为大家整理的事件流处理方式介绍和包含类型。

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)睿象云智能运维平台软件分析、比较及推荐。

上一篇:多维度告警分析的研究方法,网络告警数据分析方法
下一篇:智能告警平台中的新奇事件发现功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~