简体   繁体   English

事件处理框架建议

[英]Event processing framework recommendation

I am new to the event processing domain. 我是事件处理领域的新手。 I am looking out for a Java based event processing framework for my requirements. 我正在寻找符合我需求的基于Java的事件处理框架。 I've been through a documentation and tutorial maze on Myriad frameworks - Apache Storm, apache Kafka as well as traditional event brokers such as RabbitMQ. 我经历过有关Myriad框架的文档和教程迷宫-Apache Storm,apache Kafka以及传统事件代理(例如RabbitMQ)。 I am none the wiser. 我不是一个聪明的人。

My requirements are the following. 我的要求如下。 I have a source of events (eg usage tracking) that are pushed to me. 我有推送给我的事件源(例如使用情况跟踪)。 I want to do the following things with them: 我想对他们做以下事情:

  1. Bucketing (Split them into different buckets eg by customer) 铲斗(例如,按客户将其分成不同的铲斗)
  2. Insert all the bucketed events as batches into a Database. 将所有存储桶的事件批量插入数据库中。
  3. Perform some kind of load balancing/event prioritization, eg do not want a low priority customer pushing a huge no. 执行某种负载平衡/事件优先级排序,例如,不希望低优先级的客户推送巨大的No。 of events starving a high priority customer with a few events. 大量事件使高优先级客户感到饥饿。

I do not care too much about event ordering, but I would like to ensure high availability of these systems. 我不太在乎事件排序,但我想确保这些系统的高可用性

Looking out for a few pointers to start off with. 寻找一些起点。 Technology infrastructure no bar, but something Java based. 技术基础设施没有障碍,而是基于Java的东西。

There are great frameworks for doing real-time distributed data processing : 有很多用于进行实时分布式数据处理的框架:

In your case, I think choosing one of those frameworks is like taking a sledgehammer to crack a nut. 在您的情况下,我认为选择这些框架之一就像用大锤砸破坚果一样。 You will have to deploy and manage a cluster with master and slave nodes in addition to a Kafka cluster. 除了Kafka群集之外,您还必须部署和管理一个具有主节点和从节点的群集。

To keep your architecture simple, scalable and highly-available you should have a look at KafkaStreams. 为了使您的架构简单,可扩展且高度可用,您应该看看KafkaStreams。 KafkaStreams is a new Java API (available since kafka 0.10) for doing real-time computation on kafka topics. KafkaStreams是一个新的Java API(自kafka 0.10起可用),用于对kafka主题进行实时计算。

A KafkaStreams application is a simple java application so you can embedded a job into an existing application. KafkaStreams应用程序是一个简单的Java应用程序,因此您可以将作业嵌入到现有应用程序中。

Also, Kafka Streams jobs can be deployed with a simple command: java -jar . 另外,可以使用简单的命令java -jar部署Kafka Streams作业。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM