相关文章推荐
勤奋的充电器  ·  SignInManager<tuser>.P ...·  1 年前    · 
威武的苹果  ·  python 无法安装套件-掘金·  1 年前    · 

轻量级规则引擎调研

我们基于Flink实现了云端的规则引擎,以flink on yarn方式在运行,依赖hadoop和zookeeper,对于边缘侧来说比较重,所以打算调研下轻量级的规则引擎,我们的业务诉求如下:

业务需求背景

1、轻量级

2、支持海量规则

4、便捷的规则启停

5、动态加载

从如下几方面对比目前比较流行的几个规则引擎框架:

drools

1、社区活跃度

drools(3.7k),比较活跃的社区。三者中遥遥领先。

2、SQL支持度

不支持,通过DSL定义规则。有开发工具,生成drl文件。

3、开箱即用(支持JAVA API直接调用)

可直接maven引入依赖,开箱即用。规则需要预先加载,环境初始化比较慢2秒左右。需要自己写规则调度。

4、部署方式

可部署多个kie-server,kie-server为单机模式。

Siddhi

1、社区活跃度

Siddhi(1.2k)。

2、SQL支持度

与flink sql类似,流式处理。定义source、sink,支持多流join。丰富的插件:kafka、redis等。通过类SQL的语言描述事件流任务。

3、开箱即用(支持JAVA API直接调用)

可直接maven引入依赖,开箱即用。规则需要预先加载,环境初始化比较慢2秒左右。需要自己写规则调度。

4、部署方式

第一种方式:Standard Deployment  ,单机部署,与drools的kie-server的部署方式类似。

第二种方式:完整的分布式部署

此部署规模已经很接近flink了,但是没有checkpoint的机制。

esper

esper的社区活跃度真不高esper(699),所以我们直接略过。

几个主流的规则引擎其实实现机制都差不多,功能都能满足我们的业务场景,drools在sql支持方面比较弱,优势在社区活跃度。Siddhi的部署方式已经接近Flink,网上都说它比较轻量级,我是真的没看出来。最终打算采用drools,直接通过java api进行调用。自己写个简单的调度,如果上了它的执行调度模块,还不如直接使用flink,flink在这方面成熟多了,有checkpoint、status等机制。对于drools的动态加载,我会单独开一篇文章来详细说明,这个是我们的痛点,基于flink目前机制实现不了的。

urule

官网

上海锐道信息技术有限公司

文档 1.1. 简介 · GitBook

商用版地址: weiqun.jiang/urule-pro-boot

开源地址:https://github.com/youseries/urule

轻量级规则引擎调研淡淡的小番茄关注0.8682021.06.25 20:30:59字数 689阅读 1,141我们基于Flink实现了云端的规则引擎,以flink on yarn方式在运行,依赖hadoop和zookeeper,对于边缘侧来说比较重,所以打算调研下轻量级的规则引擎,我们的业务诉求如下:业务需求背景1、轻量级2、支持海量规则4、便捷的规则启停5、动态加载从如下几方面对比目前比较流行的几个规则引擎框架:drools1、社区活跃度drools(3.7 我们公司由于业务的极具扩大,每天经过系统的金额也达到了20亿美金左右,这个时候对资金的管控就不能像以前那样分散在不同的系统,由不同的部门负责了。所以说,我们成立了风控部门,必须成立了专门的研发团队负责风控需求,要开始做风控了。我受命去 调研 如何做风控。发现风控平台一般都需要一个叫 规则引擎 的东西,那么我就去 调研 规则引擎 的一些现状。 目前公司内部规则执行现状 if(f1){ if(a||b||c||d) if(f2){ if(a&b&d){ 当规则较少、变动不频繁时
规则引擎 由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。 规则引擎 具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程。使用 规则引擎 可以把复杂、冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植。 规则引擎 的应用 相对于业务系统, 规则引擎 可以认为...
Drools这个 规则引擎 其实不怎么好用,但是总比if-else强,虽然用着憋屈,但需要的时候也是没办法。 在网上找过很多文章和视频,要不就是实用性不高的Demo,要不就是粗略归纳,看的云里雾里的水文。我自己也是被这个东西恶心到了,所以完成之后决定写一个实用的Demo,希望可以帮助到需要的人。 一:Drools的使用 其实Drools的使用方式我觉得有3种: 基于Web页面的WorkBench 优点:web页面,操作简单,可动态配置修改规则文件,不影响项目的运行 缺点:web页面卡顿。。..
Drools 规则引擎 ,网上大把相关的文章介绍,但我vb.net教程感觉不够直白,理解有些困难,且知识点没有集中比较分散、有些还是早前版本的内容,对与新手来c#教程说上手可能比较慢,而且比较容易走弯路,故我在深入研究并实践于项目中后,在空闲时间花费python基础教程精力整理了这篇文章,分享出来,便大家快java基础教程速上手。 1. 创建Drools环境(引入Drools相关依赖包、现在都sql教程流行spring boot,故最简单有效的依赖才是最好的,kie-spring内部自行依赖了drools相关
一、aviator 规则引擎 <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> Could not find an appender,Did you define it below instead of above in the configuration file? 《硅谷增长黑客实战笔记》知识点 限流与代理网关集成调研及应用