目录

1.背景&痛点

2.目前主流规则引擎框架

3.目前业务特点选型

4.风险&缺点&优点

5.运行原理图​

6.参考


1.背景&痛点

1)业务规则变化快,比如 价格的系数调整,询价业务规则不断调整并且后期可能出现更多询价场景.

2)开发>50%的精力和时间在业务规则的开发上.

3)业务人员理解规则须有很强的业务知识,新规则需要开发配合,业务规则需求提出后上线的实际运行过程对业务人员不透明.导致开发和业务的沟通成本大,最好支持业务人员可视化配置规则.

4)规则的实现往往需要很多的if...else代码的嵌套,对后期开发理解和维护成本均不友好.目前对规则也有抽象,但是程度还不够且不支持业务人员可视化配置,没有实现规则表达式.

目标:快速低成本更新业务,流程自动化.

2.目前主流规则引擎框架

规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
规则本质上是一个函数,如y=f(x1,x2,..,xn)
规则引擎由三部分

  • 事实(Fact):就是用户输入的已经事实,可以理解为推理前的已知对象。
  • LHS(Left Hand Side):可以理解为规则执行需要满足的条件。
  • RHS(Right Hand Sike):可以理解为规则执行后的返回对象。

两个重要模块:

  • 规则管理:可以理解为逻辑上管理规则,主要涉及规则、事实对象和规则集三个实体。涉及到规则变更时,最好对规则加个版本,可通过规则版本控制,可以平滑灰度地方式改变规则,也便于更有信心在测试规则正确性。
  • 规则执行:通过规则库数据,通过规则引擎的规则解析、规则编译将可执行代码缓存起来,避免每次和DB交互,然后每次规则的变更也通过ZK或者DCC实时通知给规则执行器。规则执行器的实现方式,可以多种多样,不依赖于规则库的存储方式,可以根据需求,选用Drools、Aviator等第三方引擎,甚至可以基于ANTLR定制。

应用场景:

  • 流程分支非常复杂,规则变量庞大,常规编码(if-else)难以实现
  • 有不确定性的需求,变更频率较高
  • 需要快速做出响应和决策
  • 规则变更期望脱离于开发人员,脱离coding

主流的框架:
 Drools、easyRule、QlExpress、Aviator、Vincio
3.优缺点比较

3.目前业务特点选型

由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具
QLExpress

4.风险&缺点&优点

qlExpress缺点:

1.目前社区不算活跃,文档比较少,有时需要看源码

2.学习需要一定的成本

qlExpress优点:

  • 1、线程安全,引擎运算过程中的产生的临时变量都是threadlocal类型。
  • 2、高效执行,比较耗时的脚本编译过程可以缓存在本地机器,运行时的临时变量创建采用了缓冲池的技术,和groovy性能相当。
  • 3、弱类型脚本语言,和groovy,javascript语法类似,虽然比强类型脚本语言要慢一些,但是使业务的灵活度大大增强。
  • 4、安全控制,可以通过设置相关运行参数,预防死循环、高危系统api调用等情况。
  • 5、代码精简,依赖最小,250k的jar包适合所有java的运行环境,在android系统的低端pos机也得到广泛运用。
  • 6、支持高精度计算

5.运行原理图

6.参考

再见了 ! if-else !拥抱规则引擎 https://www.jianshu.com/p/9b67ab434795
规则引擎解决方案浅析 https://www.cnblogs.com/Alandre/p/11491221.html
开源作者博客https://blog.csdn.net/express_wind?t=1
github开源地址https://github.com/alibaba/QLExpress

规则引擎技术选型-qlExpress相关推荐

  1. 浅谈如何进行技术选型 (以工作流引擎技术选型为例说明)

    在研发过程中,我们会面临各种技术抉择.应该如何选择?选择哪种技术?为何选择这种技术?我们不认真考虑的话,往往会说不清道不明.下面根据常用的技术选型套路,来说明如何进行技术选型.文中以工作流引擎技术选型 ...

  2. drools规则引擎技术指南_物联网规则引擎技术

    物联网应用程序设计与典型的IT解决方案大不相同,因为它将物理操作技术(OT)与传感器.致动器和通信设备连接起来,并将数字信息技术(IT)与数据.分析和工作流连接起来. 在企业环境中,物联网非常复杂,这 ...

  3. 《Drools规则引擎技术指南》 已经正式上架

    <Drools规则引擎技术指南> 已经正式上架,国内首本Drools规则引擎中文教程,感谢您的支持,从基础入门到高级应用本书中都有说明,为我国规则引擎方面填补了空白,为国内IT事业尽微薄之 ...

  4. 关于物联网规则引擎技术,你想要知道的都在这儿!

    摘要:本文将从设备联动的触发条件和执行动作,以及数据转发的触发事件和转发目标两大部分,具体阐述规则引擎的原理. 规则引擎就是指用户在华为云平台对接入的设备设定相应的规则,然后在条件满足响应的规则后,平 ...

  5. AR引擎技术选型和使用实现方案

    导读 本篇约6000字阅读需要20分钟,内容有: 开发者对AR的基础认知 主流AR引擎的选型大纲 Vuforia引擎的评估和实现方案 EasyAR引擎的评估和实现方案 ARFoundation引擎的评 ...

  6. python规则引擎开发经验_关于物联网规则引擎技术,你想要知道的都在这儿!

    摘要:本文将从设备联动的触发条件和执行动作,以及数据转发的触发事件和转发目标两大部分,具体阐述规则引擎的原理. 规则引擎就是指用户在华为云平台对接入的设备设定相应的规则,然后在条件满足响应的规则后,平 ...

  7. AR SDK引擎技术选型和使用实现方案

    https://gameinstitute.qq.com/community/detail/133606

  8. 搭建一套基于 Groovy 规则引擎的业务风控平台

    黑灰产在互联网领域盛行,从反面推动了业务安全反欺诈领域的快速发展.互联网SAAS服务产品响应市场不断创新,也决定了业务风险的多样性.笔者所在财税领域常见的非财税业务互联网风控场景包括登陆注册.短信接口 ...

  9. 规则引擎选型及应用 邴越 2017-04-27 16:31:17 浏览614 评论0 HTTPS 模块 配置 string exception void input 规则引擎 摘要: 规则引擎具体执

    规则引擎选型及应用 邴越 2017-04-27 16:31:17 浏览614 评论0 HTTPS 模块 配置 string exception void input 规则引擎 摘要: 规则引擎具体执行 ...

最新文章

  1. 3ds Max绘制青花瓷茶壶
  2. set的用法及短语_人教版九全Unit 14重点短语、重点句型、课文讲解
  3. 工控设备 如何将数据发送到串口_实现4G无线通信透传的远程通信多组网5个PLC相互交换数据...
  4. 利用cache特性检测Android模拟器
  5. CDOJ 486 Good Morning 傻逼题
  6. Luogu2295 MICE
  7. 21、mysql修改密码的方法总结
  8. Ubuntu 下VNC(Real VNC) 的安装和配置
  9. python如何循环执行_如何在python中多次运行for循环?
  10. ThreadLocal工作原理和内存泄漏的预防
  11. 华为P40系列起售价曝光!有点意想不到
  12. Red Hat Enterprise Linux的一些简单操作(备忘录)
  13. ATT的汇编格式X86内联汇编
  14. 光纤MPO端面脏了也会造成您所不知道的故障
  15. 最全jar包下载链接
  16. Native Instruments Maschine 2 v2.14.7 WiN-MAC 节奏音乐制作软件含拓展
  17. 计算机英语CMYK全称,CMYK是什么意思 CMYK与RGB的区别介绍
  18. “好好说话,别伤人。”
  19. java中封装类Feild和使用setter和getter方法访问封装的类Feild
  20. HTPP的请求方式有哪些?

热门文章

  1. 百亿条数据复杂业务场景下通用归因模型设计实现
  2. 拼多多API分享:拼多多关键词搜索商品列表 取商品ID
  3. 关于BOSS直聘产品用户增长的三条建议
  4. 低仿网易云音乐音频播放器!自动获取歌曲封面,并旋转
  5. 用c语言编写一个简易的编译器,面向教学的简易c语言编译器的设计与实现(54页)-原创力文档...
  6. [Centos]Centos7升级内核版本
  7. spring boot + spring mvc 原理解析
  8. 第三周任务四:计算长方体的长宽高
  9. 有哪些简单好用的视频压缩工具?来看看这几种压缩方法
  10. 操作系统之处理机调度