使用Apache Flink进行复杂的事件处理

时间:2020-10-07 11:59:45

标签: apache-flink correlation flink-streaming complex-event-processing flink-cep

我目前正在开发一个复杂的事件处理系统,用于每秒非常高的日志流〜100000个事件。计划将复杂的事件处理设置为一种框架,向该框架提供50-100条规则以对传入事件运行。

规则的结构如下。

  • 它由操作组成,这些操作可以由发生次数和必须在其中发生的时间段界定

  • 单个动作中的时间间隔,在该时间间隔中必须执行下一个动作。

请注意,我们有两种类型的时间限制,一种是针对操作的时间限制,另一种是针对操作的时间限制。

动作只是一个单独的事件,可以通过特定条件进一步过滤。

标准可能很简单,例如IP地址等于“ X.X.X.X”,也可能很复杂,例如Constant,Variable,Shared。

常数什么都不是,但是该字段的值保持不变。可以在CEP引擎中将其视为groupby。

变量是,对于动作中每次发生的事件,该字段的值都是可变的。 例如:在5分钟内,另一个端口被访问了50次。

共享字段是一个操作和另一个操作之间共享的字段。例如,此类字段将是第一个操作中的字段值应与第二个操作中的值匹配。

我也碰到了flink中的窗口,但是在一个大小为100的窗口的情况下,我感到怀疑。该窗口介于0到100之间,然后变为100到200。但是我们甚至会将数据关联起来在50到150之间。所以我需要找出如何在flink中完成。

一旦找到与某个模式匹配的内容,我们将仅删除与该模式匹配的条目,并且我们希望将剩余状态存储12小时,并在发生任何迟到事件时进行计算。

所以我想知道apache flink是否适合我的情况。

0 个答案:

没有答案