一:简介
Gengine是一款基于golang和AST(抽象语法树)开发的规则引擎, Gengine支持的语法是一种自定义的DSL, Gengine通过内置的解释器对规则文件进行解析,构建规则模型,进行相应的规则计算和数据处理。Gengine于2020年7月由哔哩哔哩(bilibili.com)授权开源。Gengine现已应用于B站风控系统、流量投放系统、AB测试、推荐平台系统等多个业务场景。
官网上给出的Gengine相比于Java领域的著名规则引擎drools优势如下:
对比 |
drools |
gengine |
执行模式 |
仅支持顺序模式 |
支持顺序模式、并发模式、混合模式,以及其他细分执行模式 |
规则编写难易程度 |
高,与java强相关 |
低,自定义简单语法,与golang弱相关 |
规则执行性能 |
低、无论是规则之间还是规则内部,都是顺序执行 |
高,无论是规则间、还是规则内,都支持并发执行.用户基于需要来选择合适的执行模式 |