实时营销引擎在vivo营销自动化中的实践 | 引擎篇04( 四 )


传统方案存在的问题

  1. 硬编码开发成本高,交付时间长,难以应对需求变化 。
  2. 业务规则重复累赘,难以维护 。
  3. 业务规则发生变化需要修改代码,重启服务后才能生效 。
规则引擎
狭义上的规则引擎是业务规则管理系统,英文名为BRMS(即Business Rule Management System),指一整套的规则管理解决方案 。
而广义上的规则引擎是指一个可以将业务决策从应用程序代码中分离出来的输入输出组件,接收业务数据输入,并根据业务规则输出决策 。
规则引擎重点关注的是:规则配置的通用性和扩展性,以及规则匹配的性能 。
规则引擎优点
  1. 业务规则与系统代码分离,实现业务规则的集中管理 。
  2. 在不重启服务的情况下可随时对业务规则进行扩展和维护 。
  3. 可以动态修改业务规则,从而快速响应需求变更 。
  4. 规则引擎是相对独立的,只关心业务规则,使得业务分析人员也可以参与编辑、维护系统的业务规则 。
  5. 减少了硬编码业务规则的成本和风险 。
  6. 使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单 。
规则引擎的实现选型
目前开源规则引擎 Drools、Easy Rules、表达式引擎Aviator,还有动态语言Groovy、甚至直接使用SpEL进行封装都可以作为规则引擎的一种实现方案 。
  1. 如果需要搭建一整套完整BRMS的功能,从规则配置工作台,图形化语言建模,规则库管理等一站式解决方案,可以直接选用Drools 。这也是大家认为Drools使用起来比较“重”的原因,组件繁多逻辑复杂,学习成本高 。
  2. 如果业务场景相对简单,只是希望解决规则迭代频繁的问题,提升配置管理的扩展性,可以选用Easy Rules或者利用表达式引擎Aviator为基础搭建 。
规则引擎常用应用场景
  1. 风险控制系统:风险贷款、风险评估
  2. 反欺诈项目:银行贷款、征信验证

    经验总结扩展阅读