Apache Flink DataStream之CEP复杂事件处理机制

Flink CEP

概念

Flink CEP是其实一个Flink库,跟机器学习库是一样的。它是为了更快,更及时的发现一些我们所关心的事情,而不是需要等待几天或则几个月相当长的时间,才发现问题。比如我们的银行卡被人盗刷,如果没有CEP,那么我们即使丢了银行卡,可能也不知道,等我们发现银行卡丢失后,再去挂失等,发现银行卡里已经没钱了。有了CEP,则可以及时提醒,存在银行卡被盗刷的可能性。

在应用系统中,总会发生这样或那样的事件,有些事件是用户触发的,有些事件是系统触发的,有些可能是第三方触发的,但它们都可以被看做系统中可观察的状态改变,例如用户登陆应用失败、用户下了一笔订单或传感器的消息。应对状态改变的策略可以分为两类,一类是简单事件处理(Simple event processing),一般简单事件处理会有两个步骤,过滤和路由,决定是否要处理,由谁处理,另一类是复杂事件处理(Complex event processing),复杂事件处理本身也会处理单一的事件,但其典型特质是需要对多个事件组成的事件流进行检测分析并响应。

在维基百科中也对CEP做了定义,“CEP是一种事件处理模式,它从若干源中获取事件,并侦测复杂环境的事件或模式,CEP的目的是确认一些有意义的事件(比如某种威胁或某种机会),并尽快对其作出响应”,可见CEP的主要特点包括:复杂性,需要在多源的事件流中进行检测;低延迟,秒级或毫秒级的响应,比如应对威胁;高吞吐,需要迅速对大量或者超大量事件流作出响应。以往的CEP框架往往处理大量收集到的事件,不能处理正在收集的事件。

CEP在生活中的各行各业可以有很多应用,比如金融行业的风险控制、欺诈识别、行情策略等等,比如安全领域的攻击告警、危险建模、漏洞发现等等,再比如智能交通、用户漏斗等等,再关联目前的IOT,其可应用的场景不胜枚举。需要进一步挖掘和改进Flink CEP的能力,为各种业务场景赋能和输出价值。

你可能感兴趣的:(Flink实时计算)