作为我在WSO2实习的第一个项目,我有机会从事WSO2流处理器4的业务规则管理器的工作。
在流处理中,我们遇到了以下场景:从源接收数据,通过流发送数据,对其进行处理(可选地进行存储),最后将其发送到接收器以便发布到端点。
例如,我们将消耗来自外部Kafka来源 的温度传感器的读数 ,对其进行处理以识别温度是否高于20℃,并针对此类事件发送电子邮件警报 。
使用WSO2流处理器完成流处理后,我们将使用Siddhi处理这些事件。 我们编写Siddhi应用程序并进行部署,以执行它们各自的流处理任务。
什么是业务规则管理器?
对于业务用例,在处理流中的数据时可能涉及一个或有时涉及许多Siddhi应用程序。 当这些业务用例的需求发生变化时,可以通过适当地修改必要的Siddhi应用程序来适应这些变化。 可以由对Siddhi有所了解的任何人(通常是开发人员或数据科学家)来完成此操作。
在某些情况下,此类业务需求更改会频繁发生,而这些频繁的更改只是次要的调整。
作为一个非常基本的示例,让我们考虑监视公司的股票交换价值。 如果公司的股票交易量超过X ,您将收到一封电子邮件。 在此, X的值将随时间调整。

从头开始创建业务规则
- 选择选项“从头开始创建业务规则”。 之前的所有步骤都与从模板创建业务规则相同。
- 选择我们刚刚保存的
templateGroup
。 - 选择
ruleTemplate
的输入类型,然后填写输入部分的值。 我将保留默认值。 看看如何在右边显示exposedStreamFields
。

4.选择一个输出 ruleTemplate
然后为输出零件填写值。

在“ 映射”部分中,您将在输出列下看到输出 ruleTemplate
每个exposedStreamField
ruleTemplate
字段。 每个输出字段都应从输入字段获取数据,因此,我们必须从输入 exposedStreamFields
选择一个字段。

5.您可以添加自己的过滤器 ,并在规则逻辑下进行组合。 由于我们正在创建一个方案来过滤“ hillSide分支中的低存款” (请参阅步骤3中的业务规则名称) ,因此我将按以下方式输入过滤器

使用上述过滤器的1 AND 2 AND 3
将导致以下过滤条件:
(transaction == 'deposit') AND
(amount < 5000) AND (branch == 'hillSide')
6.保存并部署业务规则。 然后,如果您查看目录/wso2/worker/deployment/siddhi-files
,将存在已部署的SiddhiApp,名称为low-deposits-from-hillside-branch.siddhi
。
这就是我们使用WSO2 SP业务规则管理器创建业务规则的方式! 您可能也有兴趣签出Business Rules Manager的文档。
在我的下一篇博客文章中,我将撰写有关WSO2 SP的业务规则模板编辑器的信息 ,您可以在其中创建业务规则模板。