规则引擎设计与实现

规则引擎设计与实现

「字节跳动第五届青训营」笔记

是什么

规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并
使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业
务决策。

之前:

image-20230203105452415

之后:

image-20230203114009207

eg:

输入:计算规则、 商品价格、用户标签、商品属性 …
输出:积分

为什么要用

解决开发人员重复编码的问题
业务决策与服务本身解耦提高服务的可维护性
缩短开发路径,提高效率

规则简单容易配置
可扩展

什么时候用

  • 风控对抗
  • 活动策略运营
  • 数据分析和清洗

怎么实现(编译原理)

理解----->执行----->输入,输出

词法分析、语法分析–>抽象语法树–>参数注入、类型检查


词法分析:把源代码字符串转换为词法单元(Token)的这个过程。

语法分析:在词法分析的基础上识别出表达式的语法结构。

抽象语法树:表达式抽象语法结构的树状表示,对于一个表达式,抽象语法树一定时唯一确定的。

类型检查:验证执行的结果是否为合适的数据类型。在抽象语法树中,通常会验证某节点的子节点的数据类型是否合法。

参数注入:在规则执行过程中,使用输入的参数值来计算语法树中的标识符节点值的过程。

相关参考:

Java规则引擎:easy-rules

用Nacos ,里面修改配置的jar包配置文件,springBoot 会自动更新内容,我们的动态实时更新规则,就是这样实现的。

go的demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值