请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

job任务个数问题

有几个问题想问一下老师:
(1)GeneralMetricJob 基于通用计算框架进行的指标聚合计算 Job (一个Job一个指标),RuleJudgeJob 基于指标统计计算的动态风控规则判断Job (一个Job执行一个规则组,只有1条规则也要放到规则组),这样的话如果有100个指标,50个规则组,是不是要启动150个flink任务?
(2)RuleJudgeJob 这个任务的数据源source 是不是应该来自redis的数据,这块怎么消费reids的指标数据,redis中存放的是指标采样也就是最近一分钟的聚合值,如何获取最近n分钟的聚合值
(3)如下图如何同时取到这两个指标并进行&&判断,感觉课程和页面的逻辑不符合,能不能详细讲一下思路
图片描述

正在回答 回答被采纳积分+3

1回答

小简同学 2024-04-09 19:26:11
1)Job 数量没错 2)Source 不是 Redis,Source 是 Kafka 的行为日志数据,规则指标值的查询是流数据和 Redis 的关联查询,这里要注意使用 Flink 的异步处理去查询 Redis,至于 Redis 获取最近指定时间的指标值,在 flink/utils/RedisKeyUtil 这个类有详细的思路说明,看不到的可以更新 git 3)这个页面是单个规则的设置页面,对于单条规则,课程是强调一个规则只应该有一个条件,如果是多个条件尽量拆分为多条规则,然后放到规则组,不这样做的话,单条规则有可能会变得很复杂,不过这个不是绝对的,所以规则设置页面保留了多个条件的选择
0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕UI3299604 #1
    感谢老师的耐心解答,但是还是有不理解的地方,2) GeneralMetricJob已经读取日志流将指标窗口聚合好了sink到redis里了,那么我理解RuleJudgeJob就应该从redis读取数据,然后读取规则组里的阈值和redis的指标值就行比对吗,为什么规则判断还和日志流有关系呢?3)就算一个规则里只有一个条件,那么一个规则组里有多个规则,多个规则组之间也是有与或非的逻辑关系,一个预警触发的前提是一个规则组的所有规则都进行判断,那如何同时判断两个规则的主维度指标呢
    回复 有任何疑惑可以回复我~ 2024-04-09 19:44:04
  • 小简同学 回复 提问者 weixin_慕UI3299604 #2
    2). 嗯没错,RuleJudgeJob的Source是应该来自Redis,3)。不太明白你问的如何同时判断两个规则的主维度指标。规则组内的规则是有逻辑关系,这个在规则组配置的页面有相关的配置的,假设规则组有3条规则,规则之间的逻辑表达式是:规则1&&(规则2||规则3),  每条规则的条件判断在获取Redis指标的时候就可以同时进行阈值判断,那么上面的逻辑表达式就可以假设是:True&&(False||True), 这个逻辑表达式可以使用Aviator这个框架进行解析,那么就可以最后求解出规则组是True还是False,
    回复 有任何疑惑可以回复我~ 2024-04-10 08:49:56
  • 提问者 weixin_慕UI3299604 回复 小简同学 #3
    课程和代码里RuleJudgeJob的Source是来自kafka日志流,而且您第一次回复我这个提问,也是这样说的!所以这块逻辑应该是怎么样的
    回复 有任何疑惑可以回复我~ 2024-04-10 08:55:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信