规则引擎的基础了解|青训营笔记

262 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

简介

首先介绍下什么是规则引擎?

定义:规则引擎是一种嵌入在应用服务中的组件,可以将灵活多变的业务决策从服务代码中分离出来。通过使用预定义的语义模块来编写业务逻辑规则。在执行时接受数据输入、解释业务规则,并做出决策。规则引擎能大大提高系统的灵活性和扩展性。他可以解决开发人员重复编码的问题,使得任务决策与服务本身,提高服务的可维护性,缩短开发路径,提高效率。

使用场景

为什么需要规则引擎呢?他可以用在什么地方呢?了解其使用场景可以更方便的记住其意义。在字节跳动,规则引擎已经在风控识别、活动运营、配置下发等场景得到了广泛的应用。开发人员可以将业务逻辑与服务代码解耦,实现灵活、高效的业务策略发布。目前公司内部基于规则引擎的动态决策系统已经承接了千万级别QPS的决策请求。规则引擎的实现需要在满足大容量、高请求、低延迟的基础上尽可能做到简单易上手。

课程目标

  • 了解规则引擎的组成部分和应用场景。
  • 学习并掌握规则引擎的设计与实现原理。
  • 明确一个规则引擎的设计目标,并完成各部分的设计与实现步骤拆解。
  • 动手实现规则引擎项目,完成预定目标。
  • [课外扩展] 结合其他课程,完成一个在线 规则引擎 服务。

组成部分

数据输入

支持接受使用预定义的语义编写的规则作为策略集。比如“price > 500”接受业务的数据作为执行过程中的参数,比如价格、标签等。

规则理解

能够按照预先定义的词法、语法、优先级、运算符等正确理解业务规则所表达的语义。

规则执行

根据执行时输入的参数对策略集中的规则进行正确的解释和执行。同时对规则执行过程中的数据类型进行检查,确保执行结果正确。