Я работаю над системой управления рисками, которая предоставляет API в реальном времени.Входными данными являются действия пользователей, а выходными данными является показатель риска, рассчитываемый по ряду правил.
Пример простого правила: «Если более 10 пользователей входили через один IP-адрес в течение 10 минут, добавляли 10 точек риска». В таком случае мне сначала нужно вставить данные в БД, а затемпосчитать количество пользователей с этого IP.
Благодаря реализации логики с MySQL производительность сильно ограничена.Я обнаружил множество потоковых фреймворков, предоставляющих такую функцию (Streaming SQL), как Flink, Storm, Esper ... Однако все эти фреймворки работают в потоке, что означает, что он не может вернуть ответ на запрос API.
На данный момент у меня есть два вопроса:
- На мой взгляд, большинство StreamSQL, скорее всего, с помощью «вставить, а затем выбрать», почему все эти рамки выбирают процесс потоковой передачи?Почему бы не ответить в режиме реального времени?
- Существуют ли структуры реального времени, которые предоставляют такую функцию?