详解golang的Gengine规则引擎

embedded/2025/2/25 15:15:45/

一:简介

  Gengine是一款基于golang和AST(抽象语法树)开发的规则引擎, Gengine支持的语法是一种自定义的DSL, Gengine通过内置的解释器对规则文件进行解析,构建规则模型,进行相应的规则计算和数据处理。Gengine于2020年7月由哔哩哔哩(bilibili.com)授权开源。Gengine现已应用于B站风控系统、流量投放系统、AB测试、推荐平台系统等多个业务场景。

官网上给出的Gengine相比于Java领域的著名规则引擎drools优势如下:

对比

drools

gengine

执行模式

仅支持顺序模式

支持顺序模式、并发模式、混合模式,以及其他细分执行模式

规则编写难易程度

高,与java强相关

低,自定义简单语法,与golang弱相关

规则执行性能

低、无论是规则之间还是规则内部,都是顺序执行

高,无论是规则间、还是规则内,都支持并发执行.用户基于需要来选择合适的执行模式


http://www.ppmy.cn/embedded/165082.html

相关文章

【AI+智造】用DeepSeek分析设备温度、振动、速度、加速度量化数据:南通制造业数字化转型的“智能引擎” ——基于设备全生命周期管理的开源技术方案

作者:Odoo技术开发/资深信息化负责人 日期:2025年2月24日 一、南通制造业的数字化底色与痛点 作为长三角北翼的制造业重镇,南通拥有超10万家工业企业,其中规模以上企业超5000家,形成了以高端纺织、船舶海工、新材料、…

【鸿蒙开发】HarmonyOS Arkts怎么拿到接口返回的Json数据,console.log显示不全 超长的解决方案

【鸿蒙开发】HarmonyOS Arkts怎么拿到接口返回的Json数据,console.log显示不全 超长的解决方案 学习鸿蒙也有一段时间了,都是外包,在开发中也发现一些很神经的问题,比如今天的鸿蒙编辑器没有network窗口导致的拿不全接口返回的长数据&#x…

科普:你的笔记本电脑中有三个IP:127.0.0.1、无线网 IP 和局域网 IP;两个域名:localhost和host.docker.internal

三个IP 你的笔记本电脑中有三个IP:127.0.0.1、无线网 IP 和局域网 IP。 在不同的场景下,需要选用不同的 IP 地址,如下为各自的特点及适用场景: 127.0.0.1(回环地址) 特点 127.0.0.1 是一个特殊的 IP 地…

数据结构☞泛型

一.基础定义与应用方向 1.定义: 一般的类和方法,只能使用具体的类型 : 要么是基本类型,要么是自定义的类。如果要编写可以 应用于多种类型 的代码,这种刻板的限制对代码的束缚就会很大。----- 来源《 Java 编程思想》对泛型的介…

传统的自动化行业的触摸屏和上位机,PLC是否会被取代?

传统的自动化行业的触摸屏和上位机是否会被取代? 在工业自动化领域,触摸屏和上位机长期扮演着核心角色,尤其在污水处理、化工生产等场景中,它们通过实时数据采集、逻辑控制、报警联动等功能,保障了生产设备的稳定运行…

Go 语言内存池 (`sync.Pool`) 深度解析

Go 语言内存池 (sync.Pool) 深度解析 在高并发和性能敏感的应用中,频繁的内存分配和释放会带来显著的性能开销,并增加垃圾回收(GC)的压力。Go 语言通过 sync.Pool 提供了一种高效的对象复用机制,能够显著减少内存分配…

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署 **DeepSeek** 是一款专注于深度学习和人工智能的工具或平台,通常与人工智能、机器学习、自动化分析等领域有关。它的主要功能可能包括:深度学习模型搜索&…

力扣138随机链表复制

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 n…