规则引擎与风控系统05:其他规则引擎

上一节给大家展示了笔者之前实际开发过的项目的核心风控系统代码,其实更复杂的基于规则的风控系统也都是从简单到复杂慢慢演化出来的。虽然Drools很强大,但它也不是唯一的规则引擎,还有另外两个也同样出色,它们是Groovy和Aviator。

Groovy是Apache的35个顶级开源项目之一(能成为Apache的顶级开源项目本身就说明了它确实很秀)。它最显著的两大特性就是官方说的基于JVM,语法与Java相似,而且吸收了Python、Ruby和Smalltalk的优秀特性。至于其他的什么支持DSL、能处理原生类型等等都不重要——其实就是Java的「弟弟」而已。

比如说,如果《魔兽世界》想为玩家提供更好地服务,就要先对现有玩家数据进行一些统计,发现其中的关联。这可以通过SQL方式来实现,也可以用Drools,但都有点「重」,因为这种非核心业务本来就很「轻」,如果用重量级的系统的话有点浪费时间和资源。而且对于这种统计条件异常多的情况,用脚本语言可能是更好地选择。

安装Groovy的过程就省略了,毕竟这不是重点。

这一次,咱们先在IDEA中创建一个类型为wowcount.groovy的代码文件,文件内容如下:

// package可以要也可以不要
// package com.xiangwang.playercount

import java.text.SimpleDateFormat
import java.te

你可能感兴趣的:(CTO的几把刷子,风控系统,规则引擎,Java,Groovy,Aviator)