【蓝因子教育】什么是规则引擎
2025-03-05
规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
规则本质上是一个函数,如 y=f (x1,x2,..,xn)
规则引擎由三部分
- 事实(Fact):就是用户输入的已经事实,可以理解为推理前的已知对象。
- LHS (Left Hand Side):可以理解为规则执行需要满足的条件。
- RHS (Right Hand Sike):可以理解为规则执行后的返回对象。
两个重要模块:
- 规则管理:可以理解为逻辑上管理规则,主要涉及规则、事实对象和规则集三个实体。涉及到规则变更时,最好对规则加个版本,可通过规则版本控制,可以平滑灰度地方式改变规则,也便于更有信心在测试规则正确性。
- 规则执行:通过规则库数据,通过规则引擎的规则解析、规则编译将可执行代码缓存起来,避免每次和 DB 交互,然后每次规则的变更也通过 ZK 或者 DCC 实时通知给规则执行器。规则执行器的实现方式,可以多种多样,不依赖于规则库的存储方式,可以根据需求,选用 Drools、Aviator 等第三方引擎,甚至可以基于 ANTLR 定制。