详解golang的Gengine规则引擎

news/2025/2/25 17:40:42

一:简介

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

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

对比

drools

gengine

执行模式

仅支持顺序模式

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

规则编写难易程度

高,与java强相关

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

规则执行性能

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

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


http://www.niftyadmin.cn/n/5865777.html

相关文章

前端学习—HTML

前端学习 html概括 HTML结构标签定义网页内容 CSS样式配置,规定网页布局 JavaScript编程网页行为 HTML超文本标记语言,是一套标记标签,描述网页的 XHTML是以XML格式编写的HTML HTML文档也叫web页面,由互相嵌套的HTML元素构…

机试题——新能源汽车充电桩建设策略

题目描述 随着新能源汽车的蓬勃发展,新能源汽车充电桩的覆盖密度越来越重要。某汽车公司建设充电桩的思路如下: 一条高速沿线,每个区域建设一个充电站,充电站内有多个充电桩,充电站之间保持合理的距离。每个充电站可…

C#开发——ConcurrentDictionary集合

ConcurrentDictionary<TKey, TValue> 是 C# 中一个专为多线程场景设计的线程安全字典集合&#xff0c;位于 System.Collections.Concurrent 命名空间中。它允许多个线程同时对字典进行读写操作&#xff0c;而无需额外的同步措施。 一、集合特征 此集合有如下特征…

LabVIEW新能源客车CAN监控软件

LabVIEW平台开发的新能源客车监控软件&#xff0c;提高客车下线调试及售后服务的效率和质量。该软件通过实时数据监控和故障诊断功能&#xff0c;为技术人员提供了强大的数据支持&#xff0c;使得车辆问题可以迅速被识别和解决。 ​ 项目背景 随着新能源客车市场的快速发展&a…

《Keras 3 :使用 Vision Transformers 进行物体检测》:此文为AI自动翻译

《Keras 3 :使用 Vision Transformers 进行物体检测》 作者:Karan V. Dave 创建日期:2022 年 3 月 27 日最后修改时间:2023 年 11 月 20 日描述:使用 Vision Transformer 进行对象检测的简单 Keras 实现。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 介绍 A…

Helix——Figure 02发布的通用人形机器人控制VLA:不用微调即可做多个任务的快与慢双系统,让两个机器人协作干活(含清华HiRT详解)

前言 过去一周&#xff0c;我花了很大的心思、力气&#xff0c;把deepseek的GRPO、MLA算法的代码解析通透&#xff0c;比如GRPO与PPO的详细对比&#xff0c;再比如MLA中&#xff0c;图片 公式 代码的一一对应&#xff0c;详见此专栏《火爆全球的DeepSeek系列模型》 2.20日晚&…

11_17日项目笔记——制作“全屏播放页面”

创建项目&#xff1a; 项目需求&#xff1a;要实现的页面效果 使用相对布局&#xff08;Relative&#xff09;&#xff1a; 所需图片资源需要请点击我https://download.csdn.net/download/m0_73992525/90009094?spm1001.2014.3001.5503 修改默认启动页面 此时应用启动默认加载…

go:运行第一个go语言程序

1.如何创建go语言编辑界面 2.案例一实现简单打印“hello worlg”: package main import "fmt" func main() { for i : 0; i < 10; { if i < 0 { continue } fmt.Println("hello world") i } } 运行结果&#xff1a; PS D:\demo2> go mod ini…