规则引擎简介


 

概述

规则引擎,全称 Business Rule Management System(BRMS)业务规则管理系统,主要思想是将业务决策|业务规则从应用程序中分离出来,使用预定义的语义模块编写业务决策|业务规则,在需要时进行配置、管理。

引入规则引擎后,业务规则不再以硬编码在业务处理代码中,而是完全独立于应用程序,存储在规则库|知识库(常见的比如drl文件、数据库)中。业务规则被加载到规则引擎中供应用系统调用,业务人员可以像管理数据一样对业务规则进行管理,可以对业务规则进行查询、添加、更新等操作。
 

规则引擎其实就是一个输入输出平台,接收数据输入,解释业务规则、根据业务规则做出业务决策。简单来说,就是在满足某些条件下,自动做一些处理。

 

优缺点

优点

  • 将业务规则、业务处理代码分离开来,复杂的业务规则不用硬编码到应用代码中,降低了系统、业务处理的复杂度。
  • 规则引擎只关心业务规则,相对独立,可以由业务分析人员来管理、维护,开发人员无需陷入到复杂业务规则的理解、实现中,分工合作、专人专事大大提升效率。
  • 业务规则变更时无需修改业务处理代码,直接修改知识库中的业务规则即可,减少了硬编码业务规则带来的维护、扩展成本,可以快速实现需求。
  • 将业务规则单独保存在知识库中,便于统一管理、维护,不重启业务服务就可以对业务规则进行扩展、修改,十分方便。

说明:更新规则时不需要重启业务服务|应用,但需要重启规则引擎或者使用事件通知、下发之类的机制让规则引擎重新加载修改过的规则。

 

规则引擎的缺点

  • 接入成本高

 

应用场景

适用场景

  • 规则复杂,规则可能会频繁变更,项目本身需要根据规则的变化完成快速、低成本的更新;
  • 可用于数据校验、数据过滤、消息路由、业务规则运算等规则较多的场景,不局限于业务活动规则。
     

常见场景

  • 风控:银行等金融机构的开户、贷款的风险评估,额度、信用评估;
  • 运营活动:满减、打折、加购价的价格计算;
  • 政策满足校验:积分落户等政策规则复杂的场景。

 

引入方式

通常是把规则引擎作为一个单独的服务,负责规则的维护、加载,对外提供规则运算的接口。
 

示例

  • 规则引擎对外提供一个计算订单最终价格的rpc接口,用于计算订单在一系列满减、打折规则后的最终价格;
  • 调用方通过rpc调用规则引擎的这个接口,传入包含订单信息的Order对象,规则引起的这个接口对Order对象进行规则运算,返回一个包含订单最终价格的Order对象给调用方。

 

常见的规则引擎

Drools是一款主流的规则引擎,使用java编写、开源免费,以规则脚本的形式保存业务规则。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值