你好,欢迎来到第 38 课时,本课时我们主要讲解“Flink 调用 CEP 实现报警功能的完整实现”。
在上一课时中,我们详细讲解了 Flink CEP 中 Pattern 的分类,需要根据实际生产环境来选择单个模式、组合模式或者模式组。
在前面的课程中我们提到的三种典型场景下,分别根据业务需要实现了 Pattern 的定义,也可以根据自定义的 Pattern 检测到异常事件。那么接下来就需要根据检测到的异常事件发送告警,这一课将从这三种场景入手,来讲解完整的代码实现逻辑。
连续登录场景
在这个场景中,我们需要找出那些 5 秒钟内连续登录失败的账号,然后禁止用户,再次尝试登录需要等待 1 分钟。
我们定义的 Pattern 规则如下:
Pattern.<LogInEvent>begin("start").where(new IterativeCondition<LogInEvent>() {
@Override
public boolean filter(LogInEvent value, Context<LogInEvent> ctx) throws Exception {
return value.getIsSuccess().equals("fail");
}
}).next("next").where(new Iterat