我正在尝试用flink构建一个流事件关联引擎,我有一些关于作业执行的问题。
在我的体系结构中,我需要有不同的数据源,例如:
firewallStream= environment.addSource([FirewalLogsSource]);
proxyStream = environment.addSource([ProxyLogsSource]);
对于每个来源,我需要应用一组规则。假设我有一个以代理流数据为源的作业,其规则如下:
//Abnormal Request Method
stream.[RuleLogic].addSink([output])
//Web Service on Non-Typical Port
stream.[RuleLogic].addSink([output])
//Possible Brute Force
stream.[RuleLogic].addSink([output])
这些规则可能会扩展到15到20个规则。
在这种情况下,最好的方法是什么:
我是否应该为每个来源创建2个工作,每个工作有15-20条规则?
我应该把规则分成几份工作吗?
其他选择?
谢谢并致以问候,
佩德罗查维斯。
1条答案
按热度按时间rkttyhzu1#
我是个新手。我认为应该考虑两个主要问题。
网络流量。多个数据读取器将导致多个网络流量。
计算延迟。将所有逻辑计算放在一个作业中可能会增加延迟。