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

问题描述

我目前正在开发一个复杂的事件处理系统,用于每秒非常高的日志流〜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是否适合我的情况。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...