Я пытаюсь создать механизм корреляции событий потока с 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 правила?
- Должен ли я разделить правила на несколько заданий?
- Другие варианты?
Спасибо и наилучшими пожеланиями,
Pedro Chaves.
Я не мог точно ответить на вопрос. Это зависит от конкретной ситуации и главной проблемы системы. –
Если мы разделим правила на несколько заданий, сетевой трафик может быть проблемой. Если мы поместим все правила в одно задание, может возникнуть проблема с задержкой вычислений. Извините за неоднозначный ответ. –
Спасибо за ответы. Я не нахожу много полных развернутых реализаций, поэтому трудно найти общее правило. Я прочитал это сообщение https://techblog.king.com/rbea-scalable-real-time-analytics-king/. Они выполняют все свои процессы в одном задании (по фиксированной топологии). Если вы знаете более хорошие примеры, пожалуйста, дайте мне знать. Спасибо. –