使用JBPM和Drools构建近乎实时的应用程序,每天处理数百万个事件



我不确定这是否是公开这一点的正确位置,因为我正在就推荐给我构建应用程序的一堆技术征求意见。

让我来介绍一下背景。我的系统每天将接收大约100万(假设峰值为每秒15个事件)来自移动电信网络的"外部"事件。系统将需要根据应用于传入事件的一系列简单规则来执行一些任务。其中一些任务可以并行执行,以提高吞吐量。这些任务通常涉及更新一些数据库和与外部服务通信,在这些服务中需要某种类型的编排。

业务规则不会频繁更改,流程也不会频繁更改(即,将通知哪些外部服务),可能对这些外部服务的请求体需要不时进行一些更改。

现在,我被要求使用Jboss JBPM和Drools来构建这样的应用程序,主要是因为对这些流程和规则缺乏了解,人们正在尝试使用非常灵活的应用程序来设计流程和规则,让系统做他们想做的事。

JBPM和Drools被推荐为构建此类应用程序的技术。我还必须说,这个系统需要全天候运行,因为它对业务至关重要,并且需要不断更新网络元素才能使网络运行。

每个事件都必须接近实时或尽可能快地处理,并且不涉及手动任务,一切都应该自动化。

我从JBPM5文档中了解到,即使我设计了一个具有并行活动的业务流程,从技术上讲,它们也将在同一个线程中执行。也许JBPM并不是为了处理这种类型的需求而设计的,这就是为什么我正在向使用JBPM和Drools构建具有类似需求的系统的人寻求一些建议,以及使用推荐的技术构建这个系统将面临什么挑战。

谢谢。

在将其置于[保持];-)

非病理性规则下每秒15个事件的峰值应该不是问题。

长时间的评估(例如DB访问)可以在进程(线程)中完成,这些进程(线程中)由规则的右侧发送命令,因此Drools会话保持被动。

对JBPM了解不多,所以对它在您的场景中的有用性没有意见。

相关内容

最新更新