构建实时规则引擎处理流式事件的最佳方法是什么?

7
我们正在构建一个物联网云平台项目的开端。要实现完整的物联网平台解决方案,有一些已知的部分需要完成。其中之一是实时规则处理/引擎系统,该系统需要理解流事件与由最终用户以可读格式定义的任何规则(如SQL或Drools if/when/then等)动态匹配。

我很困惑,因为互联网上有很多产品、项目(如Storm、Spark、Flink、Drools、Espertech等)。考虑到我们有三人开发团队(初级、中高级、高级),哪种选择是最好的呢?

  • 选择流处理项目之一,例如Apache Flink,并学习掌握它?
  • 选择一个完整的解决方案(AWS、Azure等)
4个回答

4

BRMS(业务规则管理系统)如Drools主要用于快速适应业务逻辑的变化,相较于流处理引擎如Apache Storm、Spark Streaming和Flink更加成熟和稳定。流处理引擎主要用于高吞吐量和低延迟。在物联网场景下,BRMS可能不适用于服务处理数亿个事件,并且难以处理基于事件时间的窗口计算。

所有这些解决方案都可以在Iaas提供商中使用。在AWS中,您也可以查看AWS EMR和Kinesis/Kinesis Analytics。

我见过一些用例。

  1. 将数据直接流式传输到FlinkCEP。

  2. 使用规则引擎进行快速响应和低延迟,同时将数据流传输到Spark进行分析和机器学习。

您还可以在Spark和Flink中运行Drools以热部署用户定义的规则。


2
免责声明,我在这家公司工作。但是,你应该查看Losant。它非常适合开发者,并且非常容易上手。我们还有一个工作流引擎,可以为您的应用程序构建自定义逻辑/规则。请参考以下链接:https://www.losant.comhttps://docs.losant.com/workflows/overview/。图片如下:enter image description here

有没有办法在我的基础设施中仅使用它的工作流引擎? - ccobanoglu

1

-2
在开始阶段,选择像Predix、AWA、SAP或Watson这样的基于云的物联网平台,以便快速开发产品并进行初步学习。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接