使用drools来实现规则引擎

author author     2023-02-23     486

关键词:

参考技术A 之前的文章介绍过,边缘部署的时候,flink on yarn模式比较重,太耗资源。于是我们打算采用Drools对目前的规则引擎进行改造,以满足边缘侧部署的需求。业务上规则引擎主要包括如下两部分:

1、数据转发

基于Flink Table Api &SQL实现,以写SQL的方式,实现IOT平台数据的转发,支持对数据按照产品key、设备key、产品标签、设备标签来过滤。

2、场景联动

基于Flink CEP来实现。主要包括:触发条件配置、执行条件配置、执行动作配置三部分。支持IOT设备间的联动,比如:当室内温度大于30℃的时候,自动开启空调。

1、资源占用大

规则需要独立运行,至少做到租户级别的隔离。那么就需要一个租户一个job,Flink 一个job的占用内存约1G左右。无法支撑大量租户。

2、启停耗时长

尽管使用了session模式来启停job,但是整体耗时还是非常大。

3、无法动态加载

规则一旦更改,需要重启整个job。这是flink机制来决定的,flink会先在本地生成描述任务的有向无环图,然后提交给jobmanager。规则变了之后,还是需要在本地进行编译,然后提交给jobmanager。

4、组件依赖多

flink on yarn模式:需要hdfs、yarn和zookeeper。

由于存在以上的问题,所以边缘部署的时候由于资源受限,不能采用此模式。于是基于Drools来实现边缘侧的规则引擎方案应运而生。采用JAVA API方式集成Drools,能很好的解决我们的所有痛点。

1、定义统一的规则生成接口。

2、以数据转发为例,需要支持Flink SQL和Drools。提供两个不同的实现。

3、根据模板生成对应的规则信息,规则信息账户间隔离。

4、规则信息存储在MYSQL中,方便后续提供统一的规则查询服务。或者存储在分布式文件系统中。

1、规则信息按照orgId%16,均匀分配的不同节点上执行。

2、执行节点启动的时候,加载与自己节点相关规则信息。

3、直接通过JAVA API的方式集成Drools。

1)规则变更,以规则粒度通知规则调度程序。变更规则的信息发送到kafka的rule_notify。

规则信息包括:org_id、rule_id等

2)规则调度程序监听topic:rule_notify,判断此规则是否属于本节点,如果属于则通过rule_id

调用获取规则信息接口,得到规则的drl详情信息,然后本节点之前的rule删除,加载新规则。

3)整个流程为动态加载,不需要重启。

规则引擎drools在贷后催收业务中的应用

...维护和生成交由业务人员,为了达到这种目的通常我们会使用规则引擎来帮助我们实现。本篇文章主要介绍了规则引擎的概念以及Kie和Drools的关系,重点讲解了Drools中规则文件编写以及匹配算法Rete原理。文章的最后为大家展示... 查看详情

drools规则引擎一文读懂(代码片段)

...Drools简介二、Drools快速入门 电商平台促销积分规则开发实现三、Drools规则引擎构成及其核心类Drools规则引擎构成Drools规则引擎概念四、Drools基础语法规则文件构成 规则体语法结构规则注释Pattern模式匹配规则比较操作符操作步... 查看详情

规则引擎drools介绍使用及springboot整合drools(代码片段)

规则引擎Drools介绍、使用及SpringBoot整合Drools一、Drools介绍1.1优点1.2架构1.2.1Drools引擎的核心组件1.2.2规则引擎工作流程简述1.3Drools语法1.3.1规则文件1.3.1.1.规则详情1.属性详情2.条件部分-LHS3.结果部分-RHS1.3.1.2Drools关键词1.3.1.3Drools... 查看详情

springboot2整合drools规则引擎,实现高效的业务规则

本文源码:GitHub·点这里||GitEE·点这里一、Drools引擎简介1、基础简介Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启... 查看详情

规则引擎drools示例:个人所得税计算器信用卡申请保险产品准入规则(代码片段)

...ols实战1.1个人所得税计算器1.1.1名词解释1.1.2计算规则1.1.3实现步骤1.2信用卡申请1.2.1计算规则1.2.2实现步骤1.3保险产品准入规则1.3.1决策表1.3.2规则介绍1.3.3实现步骤一、Drools实战1.1个人所得税计算器本小节我们需要通过Drools规则... 查看详情

35activiti整合规则引擎drools(代码片段)

...rools就是为了解决业务代码和业务规则分离的引擎。????要使用Drools规则引擎,需要先安装安装JBossDroolsSupport插件,这里就不多说怎么安装安装JBossDroolsSupport插件。下载地址如下:https://download.jboss.org/drools/release/7.3.0.Final/droolsjbpm-t... 查看详情

规则引擎drools的简单使用

规则引擎适用于有复杂多变的规则,如商品满减、积分赠送、考勤规则等一、引入maven依赖<dependency><groupId>org.drools</groupId><artifactId>drools-core</artifactId><version>7.13.0.Final</version></de 查看详情

drools源于规则引擎

...前言     最早对Drools感兴趣,是起源于规则引擎.当时是希望能找一个开源工具来做一些规则的处理.     在官方网站上翻了半天资料,却发现Drools一直在强调它不只是一个简单的规则引擎,而是更... 查看详情

java规则引擎--drools

...正代码重启机器就可以立即在线上环境生效。 本文所使用的demo已上传 http://download.csdn.net/source/30022131、Drools语法开始语法之前首先要了解一下drools的基本工作过程,通常而言我们使用 查看详情

如何快速学习 Drools 或其他规则引擎 [关闭]

...建议。标准将采用一组业务规则的形式,因此我正在考虑使用像Drools(开源和java:-)这样的业务规则引擎)我们需要快速学习Drools(2-3周)并能够使用JBo 查看详情

规则引擎drools的使用(代码片段)

引入maven<dependency><groupId>org.drools</groupId><artifactId>drools-templates</artifactId><version>7.14.0.Final</version></dependency><dependency>& 查看详情

数据驱动规则引擎 - Drools

...描述】:我一直在评估Drools作为我们的业务Web应用程序中使用的规则引擎。我的用例是一个订单管理应用程序。规则如下:-如果用户类型为“特殊”,则额外提供5%的折扣。-如果用户已经购买了10次以上,则额外提供3%的折扣。-... 查看详情

java使用规则引擎drools出现异常

异常如下,但是算出来的数没有问题Exceptioninthread"Thread-16"java.lang.RuntimeException:Classnotconvertibletoprimitive:java.lang.Objectatorg.drools.core.util.ClassUtils.convertToPrimitiveType(ClassUtils.java:378)atorg.drools.rule.constraint.ConditionAnalyzer$AritmeticExpress... 查看详情

java规则引擎drools急速入门

文章目录​​1.Drools规则引擎简介​​​​2.DroolsAPI开发步骤​​​​3.SpringBoot整合Drools案例​​​​4.Drools基础语法​​​​5.Drools条件语法部分​​​​6.Drools结果操作部分​​​​7.Drools内置属性部分​​​​8.Drools高级语法... 查看详情

drools规则引擎环境搭建(代码片段)

...应用之编译器检测语法错误介绍的内容:Drools规则引擎的使用场景Drools规则引擎的优点Drools的基本工作工程(Fact对象、Drl文件内容、Drools的基础语法)drools文件的形式Drools文件语法初步检查二、Drools的环境搭建及简单示例环境... 查看详情

规则引擎drools6.4.0.final

java实现规则引擎:原理不多说,自己查阅资料吧;搭建环境:mavenspring(今天上图spring框架下搭建规则引擎);1:maven依赖;<dependency><groupId>org.kie</groupId><artifactId>kie-api</artifactId><version>$drools-vers 查看详情

决策树和规则引擎 (Drools)

...运行一个操作(更改对象的字段、日志信息等)。我尝试使用DroolExpert框架,但在这种情况下,我需要为图中通向 查看详情

drools规则引擎brms

安装说明|Drools中文网http://www.drools.org.cn/category/installDrools规则引擎-在微服务中的应用-简书https://www.jianshu.com/p/887ff9021eb3Drools规则引擎-在微服务中的应用-简书https://www.jianshu.com/p/887ff9021eb3微服务组件-规则引擎-Fx_demon-OSCHINAhttps://my... 查看详情