Рекомендация по платформе обработки событий

Я новичок в области обработки событий. Я ищу платформу обработки событий на основе Java для своих требований. Я прошел через лабиринт документации и руководств по платформам Myriad — Apache Storm, apache Kafka, а также традиционным брокерам событий, таким как RabbitMQ. Я не мудрее.

Мои требования следующие. У меня есть источник событий (например, отслеживание использования), которые передаются мне. Я хочу сделать с ними следующие вещи:

  1. Разделение на сегменты (разделите их на разные сегменты, например, по клиентам)
  2. Вставьте все сегментированные события в виде пакетов в базу данных.
  3. Выполните какую-либо балансировку нагрузки/приоритизацию событий, например. не хочу, чтобы клиент с низким приоритетом выдвигал огромное «нет». событий, лишающих высокоприоритетного клиента нескольких событий.

Меня не слишком волнует порядок событий, но я хотел бы обеспечить высокую доступность этих систем.

Глядя на несколько указателей, чтобы начать с. Технологическая инфраструктура не бар, а что-то на основе Java.


person archer    schedule 12.07.2016    source источник


Ответы (1)


Существуют отличные фреймворки для распределенной обработки данных в реальном времени:

В вашем случае, я думаю, что выбрать один из этих фреймворков — это все равно, что взять кувалду, чтобы расколоть орех. Вам нужно будет развернуть и управлять кластером с главными и рабочими узлами в дополнение к кластеру Kafka.

Чтобы ваша архитектура была простой, масштабируемой и высокодоступной, вам следует взглянуть на KafkaStreams. KafkaStreams — это новый API Java (доступен, начиная с kafka 0.10) для выполнения вычислений в реальном времени. на темы кафки.

Приложение KafkaStreams — это простое Java-приложение, поэтому вы можете встроить задание в существующее приложение.

Кроме того, задания Kafka Streams можно развернуть с помощью простой команды: java -jar.

person fhussonnois    schedule 12.07.2016